Ответ 1
$('#element').click(function() {
if($('#radio_button').is(':checked')) { alert("it checked"); }
});
Я могу установить переключатель правильно, но я хочу настроить своего рода "прослушиватель", который активируется при проверке определенного переключателя.
Возьмите, например, следующий код:
$("#element").click(function()
{
$('#radio_button').attr("checked", "checked");
});
он добавляет проверенный атрибут, и все хорошо, но как бы я пошел добавив предупреждение. Например, это всплывающее окно, когда установлен переключатель без помощи функции щелчка?
$('#element').click(function() {
if($('#radio_button').is(':checked')) { alert("it checked"); }
});
Если у вас есть группа переключателей, имеющих один и тот же атрибут имени, а после отправки или какого-либо события вы хотите проверить, был ли отмечен один из этих переключателей, вы можете сделать это просто следующим кодом:
$(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!');
}
});
});
В качестве решения Parag я сделал ошибку для меня, здесь мое решение (сочетающее Дэвида Хедлунда и Парага):
if (!$("input[name='name']").is(':checked')) {
alert('Nothing is checked!');
}
else {
alert('One of the radio buttons is checked!');
}
Это отлично сработало для меня!
Вам нужно будет связать событие клика с этим флажком, так как событие изменения не работает в IE.
$('#radio_button').click(function(){
// if ($(this).is(':checked')) alert('is checked');
alert('check-checky-check was changed');
});
Теперь, когда вы программно меняете состояние, вам также нужно вызвать это событие:
$('#radio_button').attr("checked", "checked");
$('#radio_button').click();
//Проверка класса
if($("input:radio[class='className']").is(":checked")) {
//write your code
}
//Проверить имя
if($("input:radio[name='Name']").is(":checked")) {
//write your code
}
//Проверка данных
if($("input:radio[data-name='value']").is(":checked")) {
//write your code
}
Другой способ - использовать prop
(jQuery >= 1.6):
$("input[type=radio]").click(function () {
if($(this).prop("checked")) { alert("checked!"); }
});
Решение будет простым. Поскольку вам просто нужны "слушатели", когда установлен определенный переключатель. Сделайте это: -
if($('#yourRadioButtonId').is(':checked')){
// Do your listener stuff here.
}
Если вам не нужна функция щелчка используйте функцию изменения JQuery
$('#radio_button :checked').live('change',function(){
alert('Something is checked.');
});
Это должен быть ответ, который вы ищете. если вы используете версию JQuery выше 1.9.1 попробуйте использовать, поскольку функция live была устарела.
... Спасибо, ребята, все, что мне было нужно, это "значение" проверенной радиокнопки, где у каждого переключателя в наборе был другой идентификатор...
var user_cat = $("input[name='user_cat']:checked").val();
работает для меня...
Работа со всеми типами кнопок и браузеров радиосвязи
if($('#radio_button_id')[0].checked) {
alert("radiobutton checked")
}
else{
alert("not checked");
}
динамическая сгенерированная радиокамера Проверить значение радиоприемника
$("input:radio[name=radiobuttonname:checked").val();
При изменении динамической радио кнопки
$('input[name^="radioname"]').change(function () {if (this.value == 2) { }else{}});
$('. radio-button-class-name'). is ('checked') не работает для меня, но следующий код работал хорошо:
if(typeof $('.radio-button-class-name:checked').val() !== 'undefined'){
// radio button is checked
}
попробуйте это
if($('input[name="radiobutton"]:checked').length == 0) {
alert("Radio buttons are not checked");
}
Попробуйте следующее:
alert($('#radiobutton')[0].checked)
jQuery по-прежнему популярен, но если вы не хотите иметь никаких зависимостей, см. ниже. Короткая и понятная функция, чтобы узнать, установлен ли переключатель на ES-2015:
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>
if($('#radio_button_id')[0].checked) {
alert("r_b checked !")
}
else{
alert("r_b not checked !");
}
этот код может решить проблему
$("#radio_1").prop("checked", true);
Для версий jQuery до версии 1.6 используйте:
$("#radio_1").attr('checked', 'checked');