Как я могу проверить, выбран ли переключатель с помощью JavaScript? - PullRequest
249 голосов
/ 15 сентября 2009

У меня есть две радиокнопки в форме HTML. Диалоговое окно появляется, когда одно из полей пустое. Как я могу проверить, выбран ли переключатель?

Ответы [ 26 ]

3 голосов
/ 03 октября 2014

с mootools (http://mootools.net/docs/core/Element/Element)

HTML:

<input type="radio" name="radiosname" value="1" />
<input type="radio" name="radiosname" value="2" id="radiowithval2"/>
<input type="radio" name="radiosname" value="3" />

ЯШ:

// Check if second radio is selected (by id)
if ($('radiowithval2').get("checked"))

// Check if third radio is selected (by name and value)
if ($$('input[name=radiosname][value=3]:checked').length == 1)


// Check if something in radio group is choosen
if ($$('input[name=radiosname]:checked').length > 0)


// Set second button selected (by id)
$("radiowithval2").set("checked", true)
2 голосов
/ 01 октября 2016
if(document.querySelectorAll('input[type="radio"][name="name_of_radio"]:checked').length < 1)
1 голос
/ 08 апреля 2015

Этот код предупредит выбранный переключатель при отправке формы. Он использовал jQuery для получения выбранного значения.

$("form").submit(function(e) {
  e.preventDefault();
  $this = $(this);

  var value = $this.find('input:radio[name=COLOR]:checked').val();
  alert(value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input name="COLOR" id="Rojo" type="radio" value="red">
  <input name="COLOR" id="Azul" type="radio" value="blue">
  <input name="COLOR" id="Amarillo" type="radio" value="yellow">
  <br>
  <input type="submit" value="Submit">
</form>
1 голос
/ 04 августа 2012

http://www.somacon.com/p143.php/

function getCheckedValue(radioObj) {
    if(!radioObj)
        return "";
    var radioLength = radioObj.length;
    if(radioLength == undefined)
        if(radioObj.checked)
            return radioObj.value;
        else
            return "";
    for(var i = 0; i < radioLength; i++) {
        if(radioObj[i].checked) {
            return radioObj[i].value;
        }
    }
    return "";
}
1 голос
/ 24 января 2013

В JQuery еще один способ проверить текущее состояние переключателей - получить атрибут «флажок».

Например:

<input type="radio" name="gender_male" value="Male" />
<input type="radio" name="gender_female" value="Female" />

В этом случае вы можете проверить кнопки, используя:

if ($("#gender_male").attr("checked") == true) {
...
}
1 голос
/ 08 мая 2019

Существует очень изощренный способ проверки того, проверены ли какие-либо переключатели с помощью ECMA6 и метода .some().

.

Html:

<input type="radio" name="status" id="marriedId" value="Married" />
<input type="radio" name="status" id="divorcedId" value="Divorced" />

И JavaScript:

let htmlNodes = document.getElementsByName('status');

let radioButtonsArray = Array.from(htmlNodes);

let isAnyRadioButtonChecked = radioButtonsArray.some(element => element.checked);

isAnyRadioButtonChecked будет true, если отмечены некоторые переключатели, и false, если ни одна из них не отмечена.

0 голосов
/ 17 мая 2013

Дайте переключателям одно и то же имя, но разные идентификаторы.

var verified1 = $('#SOME_ELEMENT1').val();
var verified2 = $('#SOME_ELEMENT2').val();
var final_answer = null;
if( $('#SOME_ELEMENT1').attr('checked') == 'checked' ){
  //condition
  final_answer = verified1;
}
else
{
  if($('#SOME_ELEMENT2').attr('checked') == 'checked'){
    //condition
    final_answer = verified2;
   }
   else
   {
     return false;
   }
}
0 голосов
/ 07 марта 2017

HTML:

<label class="block"><input type="radio" name="calculation" value="add">+</label>
<label class="block"><input type="radio" name="calculation" value="sub">-</label>
<label class="block"><input type="radio" name="calculation" value="mul">*</label>
<label class="block"><input type="radio" name="calculation" value="div">/</label>

<p id="result"></p>

JavaScript:

var options = document.getElementsByName("calculation");

for (var i = 0; i < options.length; i++) {
    if (options[i].checked) {
        // do whatever you want with the checked radio
        var calc = options[i].value;
        }
    }
    if(typeof calc == "undefined"){
        document.getElementById("result").innerHTML = " select the operation you want to perform";
        return false;
}
0 голосов
/ 15 января 2016

Это также работает, избегая вызова идентификатора элемента, но вызывая его, используя в качестве элемента массива.

Следующий код основан на том факте, что массив, названный группой radiobuttons, состоит из элементов radiobuttons в том же порядке, в котором они были объявлены в html-документе:

if(!document.yourformname.yourradioname[0].checked 
   && !document.yourformname.yourradioname[1].checked){
    alert('is this working for all?');
    return false;
}
0 голосов
/ 30 июля 2011

просто небольшая модификация Марка Биека;

HTML-код

<form name="frm1" action="" method="post">
  <input type="radio" name="gender" id="gender_Male" value="Male" />
  <input type="radio" name="gender" id="gender_Female" value="Female" / >
  <input type="button" value="test"  onclick="check1();"/>
</form>

и код Javascript для проверки выбора радиокнопки

<script type="text/javascript">
    function check1() {            
        var radio_check_val = "";
        for (i = 0; i < document.getElementsByName('gender').length; i++) {
            if (document.getElementsByName('gender')[i].checked) {
                alert("this radio button was clicked: " + document.getElementsByName('gender')[i].value);
                radio_check_val = document.getElementsByName('gender')[i].value;        
            }        
        }
        if (radio_check_val === "")
        {
            alert("please select radio button");
        }        
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...