2009-02-27 16 views
2

Ich habe auf Stackoverflow über Kontrollkästchen gelesen und ihren Wert auf 1 gesetzt, um sie zu überprüfen, aber es scheint nicht in meinem Fall zu funktionieren. Ich habe einen Databinder-Evaluierungsausdruck, der zu 1 ausgewertet wird, wenn meine Checkbox überprüft werden sollte, und ich habe überprüft, dass die generierte Seite mindestens ein Eingabekästchen mit Wert = 1 hat, das nicht als aktiviert angezeigt wird.Was bedeutet checkbox value = '1' in diesem Fall?

Was fehlt mir? Ich habe versucht, nur die Checked-Eigenschaft zu setzen, aber selbst checked = '' gilt als überprüft, so dass ich sowieso nicht sehen konnte, dass dies sowohl für die Checkbox als auch für die Checkbox funktioniert.

Hier ist die HTML, die nicht zu funktionieren scheint.

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

Hier ist der databinders, die ich in meinem Repeater für die Haupteingangselemente

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

Die anderen evals nur sicherstellen, dass die richtigen Zellen Kontrollkästchen sind, und dass die Ausrichtung der Zellen-Werke erarbeitet eine bestimmte Art und Weise (Kontrollkästchen ausgerichtete Mitte, numerische Zeug ausgerichtet rechts und andere Zeug ausgerichtet links.)

Edit: So wie kann das mit einem Databinding Ausdruck, das ist mein Dilemma.

Antwort

8

Nach den W3C specification:

Checkboxes (and radio buttons) are on/off switches that may be toggled by the user. A switch is "on" when the control element's checked attribute is set.

So jeden Wert für das Kontrollkästchen Attribut Einstellung wird die Checkbox.

  • checked = "checked"
  • geprüft = "false"
  • geprüft = "true
  • geprüft

wird alle das Kontrollkästchen markieren, wie geprüft. Sie müssen entfernen das Attribut vollständig, um das Kontrollkästchen zu deaktivieren.

So eine mögliche Lösung für Sie wäre:

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

-Code-behind

protected string isChecked(int testResult) { 
    if (testResult == 1) { 
    return "checked='checked'"; 
    } else { 
    return ""; 
    } 
} 
+0

Ich denke, Sie wollten "checked" anstelle von "checkbox" für schreiben Deine Liste mit deinen Freunden –

+0

Hoppla, repariert Vielen Dank, mein Herr. –

11

Der richtige Weg, eine Checkbox zu setzen, wie geprüft wird:

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

und der richtige Weg, um eine unkontrollierte Checkbox zu machen ist (beachten Sie, dass das gesamte checked Attribut fehlt):

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

Es ist ganz einfach:

<input type="checkbox" value="whatever" checked> Create a checked box 
<input type="checkbox" value="whatever"> Creates an unchecked box 
-2

Checkboxen werden mit der checked="checked" a überprüft ttribute

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

Dies ist falsch. checked = "checked" ist die korrekte Methode. "Ja" wird aufgrund der Browser eher liberale Handhabung von HTML funktionieren. Sie können tatsächlich jeden Wert für checked verwenden und die meisten Browser akzeptieren es, aber es ist nicht richtig –

+0

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

+0

Ein Wert von yes wird die Validierung mit dem Fehler: "Wert des Attributs überprüft" kann nicht "ja"; muss einer der "überprüft" sein. –

1

Sie geprüft verwenden sollte = "checked" Attribut der Checkbox es zu machen, wie überprüft. Das Wertattribut ist der Wert, der an den Server gesendet wird, wenn das Kontrollkästchen beim Übergeben des Formulars aktiviert wurde.

0

Sie die Checkbox ein Namensattribut nicht gegeben haben!

0

Hier ist, was ich getan habe:

Verwandte Themen