Jquery - Wie kann ich überprüfen, ob alle Checkboxen deaktiviert sind?

Für einige Grund, warum mein code nicht funktioniert?! Ich brauche zu überprüfen Kontrollkästchen, wenn Sie alle sind "deaktiviert", dann aktivieren Sie versteckte Feld und Wert senden db, so kann ich erkennen, dass die Checkboxen wurden nicht aktiviert.

Frage 1: Warum ist nicht mein jquery-code arbeiten?

Frage 2: ich brauche die Aufzeichnung aktiviert oder deaktiviert werden Werte an die DB. Mein plan ist es, zu überprüfen, wenn keine Auswahl in php. Ist das eine gute Praxis?

HTML

<tr class="more_info">
        <th valign="top">Other options:</th>
        {foreach from=$HTML_cOPTIONS key=dbname item=optname}
            {if ! empty($CARINFO[car].{$dbname})}
                <td><input type="checkbox" id="forced_checkbox" name="c_options[]" value="{$dbname}" checked/> {$optname} </br></td>
            {else}
                <td><input type="checkbox" id="forced_checkbox" name="c_options[]" value="{$dbname}"/> {$optname} </br></td>
            {/if}
        {/foreach}
        <input type="hidden" id="forceSendCheckBox" name="c_options[]" value="nocheckboxes"/>
        <input type="button" value="Check" id="check" />
    </tr>

Jquery

$('#check').bind('click',function()
{
    if ($('#forced_checkbox').filter(':not(:checked)').length == 0) {
        console.log('at least one checked');
        $("#forceSendCheckBox").prop('disabled',true);//do not send this field to DB
    } else {
        console.log('nothing checked');
        $("#forceSendCheckBox").prop('disabled',false);//send empty checkboxes
    }
});

UPDATE

Hier ist ein Turnschuh, es scheint immer noch kaputt zu sein. :-/

http://jsfiddle.net/L5J96/

  • Warum hat Ihr den Titel sagen, dass Sie brauchen, um zu überprüfen, ob alle aktiviert sind, aber deine Beschreibung sagt müssen Sie Fragen, wenn alle deaktiviert sind?
  • Sie haben kein element id="check".
  • Zug, es war ein Tippfehler. Sie haben über 2000 rep, und konnte Sie nicht Bearbeiten, ein Tippfehler?! Es nahm Sie mehr zu kommentieren.
  • Ich wusste nicht, was Sie wollten. Die meisten Menschen bieten würde, eine danke für den Hinweis auf den Widerspruch. Schließlich, Ihre Frage liegt in Ihrer Verantwortung, nicht meine.
  • ...und nur damit Sie es wissen, dieser code: .filter(':not(:checked)').length == 0 ist, gepaart mit dieser Meldung: console.log('at least one checked') ist, scheint seltsam. Wenn es 0 nicht angekreuzte Kästchen, dann einer wäre, dass "all are checked" statt "at least one checked". Also, wenn Sie wollen, um zu sehen, wenn alle "deaktiviert", dann sollten Sie das tun .filter(":checked").length == 0. Oder wenn Sie wissen wollten, wenn mindestens eine aktiviert ist, dann: .filter(":checked").length
  • Zug +1 für die Erklärung
  • Froh, dass es geholfen hat.

InformationsquelleAutor Tatarin | 2013-08-26
Schreibe einen Kommentar