У меня есть 3 радио кнопки на моей веб-странице, как показано ниже:
<label for="theme-grey">
<input type="radio" id="theme-grey" name="theme" value="grey" />Grey</label>
<label for="theme-pink">
<input type="radio" id="theme-pink" name="theme" value="pink" />Pink</label>
<label for="theme-green">
<input type="radio" id="theme-green" name="theme" value="green" />Green</label>
В jQuery я хочу получить значение выбранной радиокнопки при нажатии любой из этих трех. В jQuery у нас есть селекторы id (#) и class (.), Но что если я захочу найти переключатель по имени, как показано ниже?
$("<radiobutton name attribute>").click(function(){});
Подскажите пожалуйста как решить эту проблему.
javascript
jquery
html
radio-button
Prashant
источник
источник
document.querySelectorAll("input:radio[name=theme]").forEach(function() { this.onclick=function() { var value = this.value; }; });
Ответы:
Это должно сделать это, все это находится в документации , которая имеет очень похожий пример:
Я также должен отметить, что у вас есть несколько идентичных идентификаторов в этом фрагменте. Это неверный HTML. Используйте классы для группировки набора элементов, а не идентификаторов, так как они должны быть уникальными.
источник
[type='radio']
вместо:radio
этого, jQuery может воспользоваться преимуществами повышения производительности, обеспечиваемыми собственнымquerySelectorAll()
методом DOM .Чтобы определить, какой переключатель выбран, попробуйте это:
Событие будет перехвачено для всех переключателей в группе, а значение выбранной кнопки будет установлено в значение val.
Обновление: после публикации я решил, что приведенный выше ответ Паоло лучше, так как он использует на один меньше обход DOM. Я оставляю этот ответ в силе, так как он показывает, как получить выбранный элемент способом, совместимым с браузером.
источник
[type='radio']
вместо:radio
этого, jQuery может воспользоваться преимуществами повышения производительности, обеспечиваемыми собственнымquerySelectorAll()
методом DOM .:checked
чтобы найти, какая кнопка отмечена, например, с помощью обработчика события отправки формы, гдеthis
ключевое слово не отображается на нажатую кнопку.источник
$("input[name=theme]:checked").val();
(оставив:radio
часть вне, и, кажется, она отлично работает в IE, FF, Safari и Chrome. Мне пришлось работать с jQ v 1.3 ... Конечно, это означает, что есть только один элемент с именем 'theme'по-другому
источник
$themeRadios = $('input:radio[name=theme'])
чтобы установить любые обработчики событий, а затем получить значение с помощью фильтра, например$themeRadios.filter(":checked").val()
.Это прекрасно работает для меня. Например, у вас есть две радиокнопки с одинаковым «именем», и вы просто хотите получить значение проверенной. Вы можете попробовать это.
источник
Следующий код используется для получения значения выбранного переключателя по имени
Спасибо Аднан
источник
Я нашел этот вопрос, когда я исследовал ошибку после того, как я обновил с 1.7.2 jQuery до 1.8.2. Я добавляю свой ответ, потому что в jQuery 1.8 и выше произошли изменения, которые меняют способ ответа на этот вопрос.
В jQuery 1.8 они устарели псевдо-селекторы, такие как: радио,: флажок,: текст.
Для того, чтобы сделать выше теперь просто заменить
:radio
с[type=radio]
.Таким образом, ваш ответ теперь делается для всех версий jQuery 1.8 и выше:
Вы можете прочитать об изменении в файле readme 1.8 и о билете, специфичном для этого изменения, а также понять, почему на странице выбора радио: в разделе «Дополнительная информация».
источник
$("input[type='radio'][name='theme']:checked")
Для тех, кто не хочет включать библиотеку, чтобы сделать что-то действительно простое:
jsfiddle
Для обзора производительности текущих ответов проверьте здесь
источник
Если вы хотите узнать значение выбранной по умолчанию радиокнопки перед событием щелчка, попробуйте следующее:
источник
Вы можете использовать функцию фильтра, если у вас есть несколько радиогрупп на странице, как показано ниже
Вот URL скрипки
http://jsfiddle.net/h6ye7/67/
источник
источник
Если вы хотите значение true / false, используйте это:
источник
Может быть как то так?
Когда вы нажимаете любую радиокнопку, я полагаю, что она будет выбрана, поэтому она будет вызываться для выбранной радиокнопки.
источник
Если у вас есть несколько групп переключателей на одной странице, вы также можете попробовать это, чтобы получить значение переключателя:
Ура!
источник
также можно использовать класс CSS для определения диапазона переключателей, а затем использовать следующее для определения значения
источник
Это сработало для меня ..
HTML:
Jquery:
Надеюсь, поможет..
источник
источник
Вы можете заметить, что использование селектора класса для получения значения элементов
ASP.NET RadioButton
управления всегда пусто, и в этом причина.Вы создаете
RadioButton
контрольASP.NET
как показано ниже:И
ASP.NET
отображает следующий HTML для вашегоRadioButton
Ибо
ASP.NET
мы не хотим использоватьRadioButton
имя элемента управления или идентификатор, потому что они могут измениться по любой причине из рук пользователя (изменение имени контейнера, имени формы, имени пользовательского элемента управления, ...), как вы можете видеть в приведенном выше коде.Единственный возможный способ получить значение
RadioButton
использования jQuery - использовать класс css, как упоминалось в этом ответе на совершенно не связанный с этим вопрос, как показано ниже.источник