2 Stimmen

Warum funktioniert checkbox value = '1' in diesem Fall nicht?

Ich habe auf Stackoverflow über Kontrollkästchen gelesen und ihren Wert auf 1 gesetzt, um sie aktiviert zu machen, aber es scheint in meinem Fall nicht zu funktionieren. Ich habe einen Databinder eval-Ausdruck, der 1 auswertet, wenn mein Kontrollkästchen überprüft werden sollte, und ich habe überprüft, dass die generierte Seite mindestens ein Eingabekontrollkästchen mit Wert = 1 hat, das nicht als überprüft angezeigt wird.

Was vermisse ich? Ich habe versucht, nur die Eigenschaft checked zu setzen, aber auch checked=' ' zählt als checked, also konnte ich nicht sehen, wie man das für angekreuzte und nicht angekreuzte Kontrollkästchen hinbekommt.

Hier ist die html-Datei, die nicht zu funktionieren scheint.

<input type='checkbox' class="datacell" id='603' 
style='text-align: center' value='1' />

Hier sind die Databinder, die ich in meinem Repeater für die wichtigsten Eingabeelemente eingerichtet habe

<input type='<%# Eval("InputType") %>' class="datacell" 
id='<%# Eval("CellID") %>' style='<%# Eval("InputAlign") %>' 
value='<%# Eval("TestResult") %>' />

Die anderen Prüfungen stellen nur sicher, dass die richtigen Zellen Kontrollkästchen sind und dass die Ausrichtung der Zellen auf eine bestimmte Art und Weise funktioniert (Kontrollkästchen mittig, numerische Daten rechts und andere Daten links ausgerichtet).

Bearbeiten: Also, wie kann das mit einem Databinding-Ausdruck tun, das ist mein Dilemma.

-1voto

Tony Peterson Punkte 19404

Ich habe Folgendes getan:

<%# (Eval("TestResult").ToString() == "1" ? "checked=\"\"" : "") %>

1 Stimmen

Du hast vergessen, es zu sagen

-2voto

TheTXI Punkte 36691

Kontrollkästchen werden mit der checked="checked" Attribut

Beispiel:

<p>Please select every sport that you play.</p>
Soccer: <input type="checkbox" checked="checked"
 name="sports" value="soccer" />
<br />
Football: <input type="checkbox" 
name="sports" value="football" />
<br />
Baseball: <input type="checkbox" 
name="sports" value="baseball" />
<br />
Basketball: <input type="checkbox" checked="checked" 
name="sports" value="basketball" />
</p>

http://www.tizag.com/htmlT/htmlcheckboxes.php

0 Stimmen

Dies ist falsch. checked="checked" ist die richtige Methode. "yes" funktioniert aufgrund der eher liberalen Handhabung von HTML in Browsern. Sie können tatsächlich jeden beliebigen Wert für checked verwenden und die meisten Browser werden ihn akzeptieren, aber es ist nicht richtig.

0 Stimmen

@Neil: Die W3C-Spezifikation besagt, dass es als Ein/Aus behandelt wird und daher jeder Wert funktioniert (oder gar kein Wert). Geben Sie nicht den Browsern die Schuld.

0 Stimmen

Bei einem Wert von "yes" wird die Validierung mit dem Fehler: "Wert des Attributs "checked" kann nicht "yes" sein; muss einer von "checked" sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X