Я хочу получить выбранное значение из группы переключателей.
Вот мой HTML:
<div id="rates">
<input type="radio" id="r1" name="rate" value="Fixed Rate"> Fixed Rate
<input type="radio" id="r2" name="rate" value="Variable Rate"> Variable Rate
<input type="radio" id="r3" name="rate" value="Multi Rate" checked="checked"> Multi Rate
</div>
Вот мой .js:
var rates = document.getElementById('rates').value;
var rate_value;
if(rates =='Fixed Rate'){
rate_value = document.getElementById('r1').value;
}else if(rates =='Variable Rate'){
rate_value = document.getElementById('r2').value;
}else if(rates =='Multi Rate'){
rate_value = document.getElementById('r3').value;
}
document.getElementById('results').innerHTML = rate_value;
Я продолжаю становиться неопределенным.
javascript
html
radio-button
ZombieBatman
источник
источник
$("input[type='radio'][name='rate']:checked").val();
.checked
<form></form>
контейнер.Ответы:
Элемент ставок является a
div
, поэтому он не будет иметь значения. Это, вероятно, откудаundefined
исходит.checked
Свойство будет сказать вам , выбран ли элемент:источник
$("input[name=rate]:checked").val()
[checked]
) ищет атрибут (то есть начальное состояние). Вместо этого вы должны использовать:checked
, который ищет свойство (то есть текущее состояние), и который почти всегда является тем, что вы хотите.document.querySelectorAll("input[name=rate]:checked")[0].value
Это работает в IE9 и выше и во всех других браузерах.
источник
:checked
селектор.rate
не обязательны.:checked
элемент (ы) - возможно, в нем все «хэшировано и кэшировано», и этоO(1)
операция. Если вы не профилировали его, чтобы указать, что время запроса увеличивается с увеличением числа элементов на странице, или если вы не понимаете исходный код браузера, вы не можете этого сказать.Вы можете получить значение с помощью
checked
свойства.источник
break
илиreturn
внутриif
блока останавливает дополнительные проходы через цикл. Незначительный момент, но хороший стиль.Для вас, людей, живущих на краю:
Теперь есть то, что называется RadioNodeList и доступ к его свойству value вернет значение текущего проверенного ввода. Это избавит от необходимости сначала отфильтровывать «проверенные» входные данные, как мы видим во многих опубликованных ответах.
Пример формы
Чтобы получить проверенное значение, вы можете сделать что-то вроде этого:
JSFiddle, чтобы доказать это: http://jsfiddle.net/vjop5xtq/
Обратите внимание, что это было реализовано в Firefox 33 (кажется, что все другие основные браузеры поддерживают его). В старых браузерах
RadioNodeList
для правильной работы потребуется polfyillисточник
form.elements["test"].value
очень хорошо работает в Chrome [Версия 49.0.2623.87 m].Тот, который работал для меня, дан ниже от api.jquery.com.
HTML
JavaScript
Переменная selectedOption будет содержать значение выбранного переключателя (т.е.) o1 или o2
источник
Другой (очевидно более старый) вариант - использовать формат: "document.nameOfTheForm.nameOfTheInput.value;" например, document.mainForm.rads.value;
Вы можете ссылаться на элемент по его имени в форме. Ваш оригинальный HTML не содержит элемент формы.
Скрипка здесь (работает в Chrome и Firefox): https://jsfiddle.net/Josh_Shields/23kg3tf4/1/
источник
Используйте document.querySelector ('input [type = radio]: флажок'). Value; чтобы получить значение выбранного флажка, вы можете использовать другие атрибуты, чтобы получить значение, например, имя = пол и т. д., пожалуйста, просмотрите фрагмент ниже, это определенно будет полезно для вас,
Решение
Спасибо
источник
HTML-код:
<input type="radio" name="rdoName" value="YES"/> <input type="radio" name="rdoName" value="NO"/>
КОД JQUERY:
Ты получишь
источник
В Javascript мы можем получить значения с помощью идентификатора "
getElementById()
" в вышеприведенном коде, который вы разместили, содержит имя, а не идентификатор, поэтому вы можете изменить его следующим образомиспользуйте это значение в соответствии с вашим кодом
источник
Прошел год или около того с тех пор, как был задан вопрос, но я подумал, что возможно существенное улучшение ответов. Я считаю, что это самый простой и универсальный скрипт, потому что он проверяет, была ли кнопка проверена, и если да, каково ее значение:
Вы также можете вызвать функцию в другой функции, например так:
источник
Предполагая, что на элемент формы ссылается
myForm
переменная, указанная ниже, и что ваши радиокнопки имеют имя «my-radio-button-group-name», ниже приведен чистый JavaScript и соответствует стандартам (хотя я не проверял, чтобы он был доступен везде ):Вышеприведенное приведет к значению отмеченного (или выбранного, как его еще называют) элемента переключателя, если он есть, или
null
иначе. Суть решения -namedItem
функция, которая работает именно с переключателями.См. HTMLFormElement.elements , HTMLFormControlsCollection.namedItem и особенно RadioNodeList.value , так как
namedItem
обычно возвращаетRadioNodeList
объект.Я использую MDN, потому что он позволяет отслеживать соответствие стандартам, по крайней мере, в значительной степени, и потому, что его легче понять, чем во многих публикациях WhatWG и W3C.
источник
RadioNodeList
что-то вродеform.elements[name]
илиform[name]
(может быть, спекуляция) или через мой синтаксис выше.прямой вызов радиокнопки много раз дает вам значение кнопки FIRST, а не кнопки CHECKED. вместо того, чтобы переключаться между переключателями, чтобы увидеть, какая из них отмечена, я предпочитаю вызывать функцию
onclick
javascript, которая устанавливает переменную, которая впоследствии может быть получена по желанию.который звонит:
дополнительным преимуществом является то, что я могу обрабатывать данные и / или реагировать на проверку кнопки (в этом случае включение кнопки SUBMIT).
источник
onchange
Вместо этого вы должны связать событие, если пользователь использует клавиатуру.Улучшение предыдущих предложенных функций:
источник
Мое решение этой проблемы с чистым javascript - найти проверенный узел, найти его значение и вытащить его из массива.
Обратите внимание, что я использую функции стрелок . Смотрите эту скрипку для рабочего примера.
источник
tagName === 'INPUT'
проверку, чтобы убедиться, что вы не работаете с другими тегами, кромеinput
.Если вы используете jQuery:
$('input[name="rate"]:checked').val();
источник
Вы можете использовать,
.find()
чтобы выбрать проверенный элемент:источник
затем...
источник
rates.rate.value
нетrates.value
document.getElementById("rates").rate.value
[или]document.forms[0].rate.value
проверить значение по ID:
источник
Я использовал функцию jQuery.click для получения желаемого результата:
Надеюсь, поможет.
источник
Если кнопки в форме
var myform = new FormData(getformbywhatever); myform.get("rate");
QuerySelector выше, это лучшее решение. Тем не менее, этот метод прост для понимания, особенно если у вас нет понятия о CSS. Кроме того, поля ввода, скорее всего, будут в форме в любом случае.
Не проверял, есть другие похожие решения, извините за повторение
источник
не может получить значения радио-кнопки, как это вместо использования
источник
Если вы используете
JQuery
, пожалуйста, используйте приведенный ниже фрагмент для группы переключателей.источник
Просто используйте:
document.querySelector('input[rate][checked]').value
источник
document.querySelector('input[name = rate]:checked').value
источник
Вы также можете перебирать кнопки с помощью цикла forEach на элементах.
источник
https://codepen.io/anon/pen/YQxbZJ
HTML
JS
источник
В php это очень простая
HTML-страница
Принять значение от формы до php
источник