Verwenden von JQuery, um zu überprüfen, ob kein Optionsfeld in einer Gruppe aktiviert wurde

Lesezeit: 3 Minuten

Ich sitze mit einem Problem, ich muss mit JQuery überprüfen, ob kein Optionsfeld innerhalb einer Optionsfeldgruppe aktiviert wurde, damit ich den Benutzern einen Javascript-Fehler geben kann, wenn sie vergessen haben, eine Option zu aktivieren.

Ich verwende den folgenden Code, um die Werte zu erhalten

var radio_button_val = $("input[name="html_elements"]:checked").val();

if (!$("input[name="html_elements"]:checked").val()) {
   alert('Nothing is checked!');
}
else {
  alert('One of the radio buttons is checked!');
}

  • Dies schlägt fehl, wenn das aktivierte Optionsfeld einen Wert hat = “”

    – ScottE

    15. Januar 2010 um 14:41 Uhr

  • @ScottE – ausgezeichneter Punkt – Ich werde diese Antwort entfernen, wenn Roland sie nicht akzeptiert.

    – Dominic Rodger

    15. Januar 2010 um 14:48 Uhr

  • Ich denke, du könntest es einfach ändern .val() == "" und entfernen Sie die ! und du wärst fertig.

    – Doug Neiner

    15. Januar 2010 um 21:08 Uhr

  • @Doug – hätte das nicht immer noch das von ScottE erwähnte Problem? Was würde .val() zurück, wenn das aktivierte Optionsfeld hatte value=""? (Obwohl ich nehme an, Sie könnten argumentieren, dass dies ein ziemlich unwahrscheinlicher Fall ist).

    – Dominic Rodger

    16. Januar 2010 um 9:09 Uhr

  • Entschuldigung, mein Kommentar war verwirrend: Ich wollte, dass der gesamte Test so aussieht: if ($("input[name='html_elements']:checked").val() == "") Was würde “Nichts ist überprüft” benachrichtigen

    – Doug Neiner

    16. Januar 2010 um 14:57 Uhr


Ich benutze

$("input:radio[name="html_radio"]").is(":checked")

Und wird FALSE zurückgeben, wenn alle Elemente in der Funkgruppe deaktiviert sind, und TRUE, wenn ein Element aktiviert ist.

  • Diese Antwort funktionierte für mich zuverlässig, um zu überprüfen, ob eine Optionsfeldgruppe einen ausgewählten Wert hatte. Beste Antwort im Thread.

    – Andy Koch

    29. April 2013 um 19:21 Uhr

  • Sowohl die Antwort von Dominic Rodger als auch von Jacobo Hernández funktionieren gut. Ich persönlich versuche, niemals das führende NOT (!) am Anfang der Zeile zu verwenden. Jahre später wird es schwierig zu debuggen, wenn Sie das übersehen und die Logik rückwärts haben … is (“:checked”) ist sehr klar, was Sie tun – Beste Antwort.

    – Scott

    15. Februar 2016 um 16:44 Uhr

Benutzer-Avatar
Doug Neiner

Du könntest so etwas machen:

var radio_buttons = $("input[name="html_elements"]");
if( radio_buttons.filter(':checked').length == 0){
  // None checked
} else {
  // If you need to use the result you can do so without
  // another (costly) jQuery selector call:
  var val = radio_buttons.val();
}

  • Könnten Sie die ersten beiden Zeilen nicht auf eingrenzen if ($("input[name='html_elements']:checked").length == 0){ ?

    – Machtherr

    15. Januar 2010 um 14:53 Uhr


  • Sie könnten, aber dann benötigen Sie eine weitere vollständige jQuery-Auswahl, um den Wert zu erhalten, wenn Sie zeigen, dass ein Wert vorhanden ist.

    – Doug Neiner

    15. Januar 2010 um 21:06 Uhr

if ($("input[name="html_elements"]:checked").size()==0) {
   alert('Nothing is checked!');
}
else {
  alert('One of the radio buttons is checked!');
}

Benutzer-Avatar
N Zhang

Verwenden .length beziehen auf http://api.jquery.com/checked-selector/

if ($('input[name="html_elements"]:checked').length === 0) alert("Not checked");
else alert("Checked");

Benutzer-Avatar
David Okwi

var len = $('#your_form_id input:radio:checked').length;
      if (!len) {
        alert("None checked");
      };
      alert("checked: "+ len);

Benutzer-Avatar
Vitali D.

Ich denke, dies ist ein einfaches Beispiel, wie man überprüft, ob ein Radio in einer Gruppe von Radios überprüft wurde.

if($('input[name=html_elements]:checked').length){
    //a radio button was checked
}else{
    //there was no radio button checked
} 

1310660cookie-checkVerwenden von JQuery, um zu überprüfen, ob kein Optionsfeld in einer Gruppe aktiviert wurde

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy