wake-up-neo.com

Finden Sie heraus, ob das Optionsfeld mit JQuery markiert ist.

Ich kann ein Optionsfeld auf "OK" setzen, aber ich möchte eine Art "Listener" einrichten, der aktiviert wird, wenn ein bestimmtes Optionsfeld aktiviert wird.

Nehmen Sie zum Beispiel den folgenden Code:

$("#element").click(function()
{ 
    $('#radio_button').attr("checked", "checked");
});

es fügt ein geprüftes Attribut hinzu und alles ist in Ordnung, aber wie würde ich vorgehen, um eine Warnung hinzuzufügen. Wird dies beispielsweise angezeigt, wenn das Optionsfeld ohne die Klickfunktion aktiviert ist?

549
Keith Donegan
$('#element').click(function() {
   if($('#radio_button').is(':checked')) { alert("it's checked"); }
});
1009
David Hedlund

Wenn Sie über eine Gruppe von Optionsfeldern mit demselben Namensattribut verfügen und nach dem Senden oder einem Ereignis überprüfen möchten, ob eines dieser Optionsfelder aktiviert wurde, können Sie dies einfach mit dem folgenden Code ausführen:

$(document).ready(function(){
  $('#submit_button').click(function() {
    if (!$("input[name='name']:checked").val()) {
       alert('Nothing is checked!');
        return false;
    }
    else {
      alert('One of the radio buttons is checked!');
    }
  });
});

Quelle

jQuery API Ref

144
Parag

Da Parags Lösung einen Fehler für mich warf, ist hier meine Lösung (kombiniert David Hedlunds und Parags):

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

Das hat gut funktioniert für mich!

39
Patrick DaVader

Sie müssten das Klickereignis des Kontrollkästchens binden, da das Änderungsereignis im IE nicht funktioniert.

$('#radio_button').click(function(){
    // if ($(this).is(':checked')) alert('is checked'); 
    alert('check-checky-check was changed');
});

Wenn Sie jetzt den Status programmgesteuert ändern, müssen Sie auch dieses Ereignis auslösen:

$('#radio_button').attr("checked", "checked");
$('#radio_button').click();
31
Znarkus

// Durch die Klasse schauen

if($("input:radio[class='className']").is(":checked")) {
     //write your code         
}

// Überprüfen Sie den Namen

if($("input:radio[name='Name']").is(":checked")) {
         //write your code         
}

// Daten durchsehen

if($("input:radio[data-name='value']").is(":checked")) {
         //write your code         
}
18
Nanhe Kumar

Die Lösung ist einfach: Sie brauchen nur 'Listener', wenn ein bestimmtes Optionsfeld aktiviert ist. Tu es :-

if($('#yourRadioButtonId').is(':checked')){ 
// Do your listener's stuff here. 
}
9
Shah-Kodes

Eine andere Möglichkeit ist die Verwendung von prop (jQuery> = 1.6) :

$("input[type=radio]").click(function () {
    if($(this).prop("checked")) { alert("checked!"); }
});
9
Saeb Amini

Wenn Sie keine Klickfunktion wünschen, verwenden Sie die Funktion zum Ändern von Abfragen

$('#radio_button :checked').live('change',function(){
alert('Something is checked.');
});

Dies sollte die Antwort sein, die Sie suchen. Wenn Sie eine JQuery-Version über 1.9.1 verwenden, versuchen Sie, diese als veraltete Live-Funktion zu verwenden.

6
iCezz

... Danke Jungs ... alles, was ich brauchte, war der 'Wert' des aktivierten Optionsfelds, bei dem jedes Optionsfeld im Set eine andere ID hatte ...

 var user_cat = $("input[name='user_cat']:checked").val();

funktioniert bei mir...

5
Bill Warren

Arbeiten mit allen Arten von Optionsfeldern und Browsern

if($('#radio_button_id')[0].checked) {
   alert("radiobutton checked")
}
else{
   alert("not checked");
}

Working Jsfiddle Here

4
Thyagarajan C

$ ('. radio-button-class-name'). is ('checked') hat bei mir nicht funktioniert, aber der nächste Code hat gut funktioniert:

    if(typeof $('.radio-button-class-name:checked').val() !== 'undefined'){
     // radio button is checked
    }
3
Jokerius

dynamisch erzeugter Radiobutton Überprüfen Sie den Wert für das Abrufen des Radios

$("input:radio[name=radiobuttonname:checked").val();

Bei Änderung des dynamischen Optionsfelds

$('input[name^="radioname"]').change(function () {if (this.value == 2) { }else{}});
3
Dhaval Kariya

versuche dies

    if($('input[name="radiobutton"]:checked').length == 0) {
        alert("Radio buttons are not checked");
    }
2

Versuche dies:

alert($('#radiobutton')[0].checked)
1
Nandha kumar

jQuery ist immer noch beliebt, aber wenn Sie keine Abhängigkeiten haben möchten, siehe unten. Short & Clear-Funktion, um herauszufinden, ob das Optionsfeld auf ES-2015 aktiviert ist:

function getValueFromRadioButton( name ){
  return [...document.getElementsByName(name)]
         .reduce( (rez, btn) => (btn.checked ? btn.value : rez), null)
}

console.log( getValueFromRadioButton('payment') );
<div>  
  <input type="radio" name="payment" value="offline">
  <input type="radio" name="payment" value="online">
  <input type="radio" name="payment" value="part" checked>
  <input type="radio" name="payment" value="free">
</div>
0
MaxWall