отримати значення від групи радіо за допомогою jquery


77

Я намагаюся отримати значення радіогрупи з назвою managerelradio. Мій html-код для цієї радіогрупи -.

 <label><input type="radio" name="managerelradio" value="Yes" id="Add">Add</label>
 <label><input type="radio" name="managerelradio" value="No" id="Remove">Remove</label>

і Jquery для цього є ..

    var manageradiorel = $('input[name = "managerelradio"]:checked' , '#managechildform').val();
 alert(manageradiorel);

це показує мене невизначеним.

Хоча я також пробував це як.

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

Але все одно я отримую невизначену цінність.


Чи можете ви також розміщувати HTML? .Це допоможе нам зрозуміти проблему
Null Pointer

Відповіді:


143

Спробуйте це

var manageradiorel = $("input:radio[name ='managerelradio']:checked").val();
alert(manageradiorel);

Будь ласка, перевірте цей DEMO .. він буде працювати нормально

Примітка: Потрібно вибрати один із ваших перемикачів. В іншому випадку він повернеться невизначеним

Ви можете використовувати checkedатрибут, щоб зробити перемикач вибраним за замовчуванням


також його потрібно помістити в подію
onchange

@Shameer, я не думаю. Ви можете побачити демонстрацію
Null Pointer

Це працює для мене (навіть без події onchange), це має бути прийнятою відповіддю!
user3532637

+1, працює. У разі відсутності більше однієї групи кнопок, можна залишити специфікацію імені у селекторі.
Zelphir Kaltstahl

Було б непогано, якби jQuery був достатньо розумним, щоб зрозуміти це $("#managerelradio").val()як пошук значення групи перемикачів , але оскільки він не такий розумний, принаймні є логіка у побудові цього селектора ...
FKEinternet

17

Це працює для мене

$('input[name="managerelradio"]').on('change', function(e) {

    var manageradiorel = e.target.value;
    alert(manageradiorel);

});

Приклад тут


Хоча це працює, якщо я використовую функцію зміни на групі радіо, але це не спрацює, якщо я вкладу якусь іншу функцію зміни, наприклад, при випадаючому зміні.
Рахул Сінгх,

@Rahul: Ваш один із ваших перемикачів повинен бути вибраний, щоб отримати значення. Перегляньте моє оновлення тут, посилання
Gowri,

10

Невелике розширення jQuery, щоб зробити це трохи простішим:

jQuery.fn.extend({
    groupVal: function() {
        return $(this).filter(':checked').val();
    }
});

// Usage:
$("input[name='managerelradio']").groupVal();

// Or even:
$("[name='managerelradio']").groupVal();
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.