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?
$('#element').click(function() {
if($('#radio_button').is(':checked')) { alert("it's checked"); }
});
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!');
}
});
});
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!
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();
// 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
}
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.
}
Eine andere Möglichkeit ist die Verwendung von prop
(jQuery> = 1.6) :
$("input[type=radio]").click(function () {
if($(this).prop("checked")) { alert("checked!"); }
});
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.
... 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...
Arbeiten mit allen Arten von Optionsfeldern und Browsern
if($('#radio_button_id')[0].checked) {
alert("radiobutton checked")
}
else{
alert("not checked");
}
$ ('. 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
}
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{}});
versuche dies
if($('input[name="radiobutton"]:checked').length == 0) {
alert("Radio buttons are not checked");
}
Versuche dies:
alert($('#radiobutton')[0].checked)
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>