У меня есть две радиокнопки в форме HTML. Диалоговое окно появляется, когда одно из полей пустое. Как я могу проверить, выбран ли переключатель?
javascript
новичек
источник
источник
Ответы:
Давайте представим, что у вас есть такой HTML
Для проверки на стороне клиента, вот несколько Javascript, чтобы проверить, какой из них выбран:
Вышесказанное можно сделать более эффективным в зависимости от точной природы вашей разметки, но этого должно быть достаточно, чтобы начать работу.
Если вы просто хотите посмотреть , выбрана ли какая-либо радиокнопка в любом месте на странице, PrototypeJS сделает это очень просто.
Вот функция, которая будет возвращать true, если где-то на странице выбран хотя бы один переключатель. Опять же, это может потребоваться настроить в зависимости от вашего конкретного HTML.
Для проверки на стороне сервера (помните, вы не можете полностью зависеть от Javascript для проверки!) , Это будет зависеть от вашего выбора языка, но вы просто проверяете
gender
значение строки запроса.источник
С jQuery это было бы что-то вроде
Позвольте мне разбить это на части, чтобы покрыть это более ясно. JQuery обрабатывает вещи слева направо.
input
ограничивает его для ввода тегов.[name=gender]
ограничивает его тегами с именем пола в предыдущей группе.:checked
ограничивает его флажками / переключателями, выбранными в предыдущей группе.Если вы хотите вообще избежать этого, отметьте одну из переключателей
checked="checked"
в HTML-коде как флажок ( ), что гарантирует, что всегда будет выбран один переключатель.источник
Ванильный JavaScript-способ
источник
name
.Просто пытаюсь улучшить решение Russ Cam с помощью некоторого CSS-селектора, добавленного в ванильный JavaScript.
Здесь нет реальной необходимости в jQuery, querySelectorAll теперь достаточно широко поддерживается.
Изменить: исправлена ошибка с селектором CSS, я включил кавычки, хотя вы можете их опустить, в некоторых случаях вы не можете, поэтому лучше оставить их в.
источник
a[href^="http://"]
) они были бы необходимы, и согласованность более удобна в обслуживании. Кроме того, это позволяет объявлению атрибута соответствовать соответствующему HTML.HTML-код
Код Javascript:
источник
Вы можете использовать этот простой скрипт. У вас может быть несколько переключателей с одинаковыми именами и разными значениями.
источник
document.forms[0].elements['nameOfRadioList'].value
Сценарии на этой странице помогли мне придумать сценарий ниже, который я считаю более полным и универсальным. По сути, он будет проверять любое количество переключателей в форме, а это означает, что он выберет параметр радио для каждой из различных групп радиосвязи в форме. например, в тестовой форме ниже:
Сценарий RadioValidator перед отправкой должен убедиться, что дан ответ как для «test1», так и «test2». Вы можете иметь столько радиогрупп в форме, и она будет игнорировать любые другие элементы формы. Все пропущенные ответы по радио будут отображаться во всплывающем окне с одним оповещением. Вот и все, я надеюсь, что это помогает людям. Любые исправления ошибок или полезные модификации приветствуются :)
источник
Обратите внимание на это поведение с jQuery при получении значений радиовхода:
Поэтому
$('input[name="myRadio"]').val()
не возвращает проверенное значение радиовхода, как вы могли бы ожидать - оно возвращает значение первой радиокнопки.источник
С mootools ( http://mootools.net/docs/core/Element/Element )
HTML:
ЯШ:
источник
это служебная функция, которую я создал, чтобы решить эту проблему
источник
Это будет действительно для переключателей с одинаковым именем, JQuery не требуется.
Если мы говорим о флажках, и мы хотим, чтобы список с флажками отмечен общим именем:
источник
источник
просто небольшая модификация Марка Биека;
HTML-код
и код Javascript, чтобы проверить, выбран ли переключатель
источник
Существует очень сложный способ проверить, проверены ли какие-либо из переключателей с помощью ECMA6 и метода
.some()
.Html:
И JavaScript:
isAnyRadioButtonChecked
будет,true
если некоторые из переключателей отмечены, иfalse
если ни одна из них не отмечена.источник
источник
http://www.somacon.com/p143.php/
источник
В JQuery еще один способ проверить текущее состояние переключателей - получить атрибут «флажок».
Например:
В этом случае вы можете проверить кнопки, используя:
источник
$("#gender_male").attr("checked")
является строка,"checked"
а не логическое значение.Этот код предупредит выбранный переключатель при отправке формы. Он использовал jQuery для получения выбранного значения.
источник
Я использовал оператор распространения и некоторые, чтобы проверить, что хотя бы один элемент в массиве проходит тест.
Я разделяю, для кого беспокойство.
источник
Вот решение, которое расширено, чтобы не продолжать отправку и отправить предупреждение, если переключатели не отмечены. Конечно, это будет означать, что вы должны их не проверять для начала!
Просто не забудьте установить идентификатор («radio1», «radio2» или как вы его называли) в форме для каждой из переключателей, иначе скрипт не будет работать.
источник
if (!document.getElementById('radio1').checked && !document.getElementById('radio2').checked) { alert(); }
.Пример:
источник
Форма
Сценарий
Скрипка: http://jsfiddle.net/PNpUS/
источник
Я просто хочу убедиться, что что-то выбрано (используя jQuery):
источник
Если вы хотите использовать ванильный JavaScript, не хотите загромождать разметку, добавляя идентификаторы на каждую радиокнопку, и заботитесь только о современных браузерах , следующий функциональный подход для меня немного более приятен, чем цикл for:
Если ни то, ни другое не проверено, оно вернется
undefined
(хотя вы можете изменить строку выше, чтобы вернуть что-то другое, например, чтобы получитьfalse
возвращение, вы можете изменить соответствующую строку выше на:)}).pop() || {value:false}).value;
.Существует также перспективный подход к полифилу, так как интерфейс RadioNodeList должен упростить использование
value
свойства в списке дочерних радиоэлементов формы (в приведенном выше коде какformElement[radioName]
), но у него есть свои проблемы: Как заполнить RadioNodeList ?источник
Это также работает, избегая вызова для идентификатора элемента, но вызывая его, используя в качестве элемента массива.
Следующий код основан на том факте, что массив, называемый группой radiobuttons, состоит из элементов radiobuttons в том же порядке, в котором они были объявлены в html-документе:
источник
HTML:
Java-script
источник
Дайте переключателям одно имя, но разные идентификаторы.
источник