Wenn wir mehr in unserer Seite wie checkboxed haben:
<input id="reminder" name="Check1" value="false" type="checkbox" />
<input id="alarm" name="Check2" value="false" type="checkbox" />
müssen wir das Änderungsereignis dieses Kontrollkästchen, binden und setzten Sie den Wert auf true oder false .
$('input[type=checkbox]').on('change', function(){
var name = $(this).attr('name');
if($(this).is(':checked')){
$('input[name= "' +name +'"]').val(true);
$(this).val(true);
}
else{
$(this).val(false);
$('input[name= "' +name +'"]').val(false);
}
});
standardmäßig Checkbox Wert erscheint nicht in $ ('Form'). SerializeArray() Es wird angezeigt, wenn es aktiviert ist.
Wir haben für jedes Kästchen ein verstecktes Feld zu halten wie:
<input type="hidden" value="false" name="Check1" />
<input type="hidden" value="false" name="Check2" />
Nun, wenn wir die Form jetzt serialisiert, bekommen wir den richtigen Wert wie: Check1 = true Check2 = false
Wenn Sie viele Kontrollkästchen haben, kann diese Methode unhandlich werden. Hier ist ein besserer Ansatz: http://StackOverflow.com/a/7108685/399435 –
Absolut nicht mit dir stimmen @KarthicRaghupathi. Wenn ein mehrzeiliger benutzerdefinierter JS mit nicht transparenter Logik für Sie "wendiger" aussieht, gehen Sie einfach dafür. Die ursprüngliche Frage betraf binäre Werte, nicht mehrere. Für mich - zwei Zeilen HTML Code ist eine viel elegantere Lösung. – roody
der andere Ansatz ist auch für Binärwerte. Nur es behandelt alle Kontrollkästchen im Formular. Ich musste 20 Checkboxen in einem Formular bearbeiten. Ihre Vorgehensweise bedeutet 40 Eingabe-Tags im Gegensatz zu wenigen Zeilen von JS. –