Как получить выбранное значение переключателя с помощью js

Я использую этот код, чтобы получить значение выбранного в настоящий момент радиокнопки, но оно не работает.

var mailcopy = document.getElementById('mailCopy').value; 

Как получить текущее выбранное значение переключателя с помощью Javascript?

Ответ 1

HTML

<p>Gender</p>
<input type="radio" id="gender0" name="gender" value="Male">Male<br>
<input type="radio" id="gender1" name="gender" value="Female">Female<br>

JS

var gender = document.querySelector('input[name = "gender"]:checked').value;
document.writeln("You entered " + gender + " for your gender<br>");

Ответ 2

Если вы используете jQuery, следующий код будет работать для вас.

$('input[name=radioName]:checked').val();

Ответ 3

Радиокнопки входят в группы с одинаковым именем и разными идентификаторами, у одного из них будет установлено, что свойство checked установлено в true, поэтому перебирайте их, пока не найдете его.

function getCheckedRadio(radio_group) {
    for (var i = 0; i < radio_group.length; i++) {
        var button = radio_group[i];
        if (button.checked) {
            return button;
        }
    }
    return undefined;
}
var checkedButton = getCheckedRadio(document.forms.frmId.elements.groupName);
if (checkedButton) {
    alert("The value is " + checkedButton.value);
}

Ответ 4

проверьте это

<input class="gender" type="radio" name="sex" value="male">Male
<br>
<input class="gender" type="radio" name="sex" value="female">Female


<script type="text/javascript">
$(document).ready(function () {
$(".gender").change(function () {

    var val = $('.gender:checked').val();
    alert(val);
});
});

</script>

Пример

Ответ 5

Может быть, я что-то пропустил здесь, но не добрый старый стандарт JS? Я имею в виду:

var selectedOption = document.getElementById('your-form-name')['radio-group-name'].value;

... который действителен, конечно, если предоставил "значение" для ваших элементов радиовхода.

<input type="radio" name="radio-group-name" value="red" checked>
<input type="radio" name="radio-group-name" value="blue">

В приведенном выше примере значение должно быть "красным" или "синим".

Ответ 6

function getCheckedValue(radioObj, name) {

    for (j = 0; j < radioObj.rows.length; ++j) {
        for (k = 0; k < radioObj.cells.length; ++k) {
            var radioChoice = document.getElementById(name + "_" + k);
            if (radioChoice.checked) {
                return radioChoice.value;
            }
        }
    }
    return "";
}

Ответ 7

Более простой способ сделать это - использовать глобальную переменную js, которая просто содержит идентификатор щелкнутого переключателя. Тогда вам не нужно терять код, вращающийся через ваши списки радиостанций, которые ищут выбранное значение. Я сделал это в случаях, когда у меня есть динамически сгенерированный список из 100 или более переключателей. вращение через них (почти незаметное) медленное, но это более легкое решение.

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

<script>
var gRadioValue = ''; //global declared outside of function
function myRadioFunc(){
    var radioVal = gRadioValue;  
    // or maybe: var whichRadio = document.getElementById(gWhichCheckedId);
    //do somethign with radioVal
}
<script>

<input type="radio" name="rdo" id="rdo1" value="1" onClick="gRadioValue =this.value;"> One
<input type="radio" name="rdo" id="rdo2" value="2" onClick="gRadioValue =this.value;"> Two
...
<input type="radio" name="rdo" id="rdo99" value="99" onClick="gRadioValue =this.value;"> 99

Ответ 8

вы можете использовать этот

$('input[name="field_value"]:checked').val(); 

или, для более старой версии jquery

$('input[@name="field_value"]:checked').val();

Ответ 9

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

Затем я вызываю функцию с помощью кнопки, которая проверяет каждый переключатель, чтобы проверить, проверен ли он. Он делает это с помощью функции .checked. Если это значение равно true, я могу изменить значение другой переменной.

function createOutput() {
  var order = "in";
  if (document.getElementById('radio1').checked == true) {
    order = "pre";
  } else if (document.getElementById('radio2').checked == true) {
    order = "in";
  } else if (document.getElementById('radio3').checked == true) {
    order = "post";
  }
  document.getElementById('outputBox').innerHTML = order;
}
<input id="radio1" type="radio" name="order" value="preorder" />Preorder
<input id="radio2" type="radio" name="order" value="inorder" checked="true" />Inorder
<input id="radio3" type="radio" name="order" value="postorder" />Postorder
<button onclick="createOutput();">Generate Output</button>
<textarea id="outputBox" rows="10" cols="50"></textarea>

Ответ 10

Вы можете сделать что-то очень похожее на ответ Beanz, но вместо использования идентификаторов используйте классы для уменьшения избыточности.

function getSelectedValue() {
  var radioBtns = document.getElementsByClassName("radioBtn");
  for(var i = 0; i < radioBtns.length; i++){
    if(radioBtns[i].checked){
      document.getElementById("output").textContent = radioBtns[i].value; 
    }
  }
}
<input class="radioBtn" type="radio" name="order" value="button1" />Button 1<br>
<input class="radioBtn" type="radio" name="order" value="button2" />Button 2<br>
<input class="radioBtn" type="radio" name="order" value="button3" />Button 3<br>
<button onclick="getSelectedValue();">Get Value of Selected Radio</button><br>
<textarea id="output"></textarea>

Ответ 11

все вы можете проверить этот пример и легко понять.

        Name:   <input type="text" id="text" class ="input">
                <input type="text" id="text1" class ="input">
        Gender: <input type="radio" id="m" class="Rm"  name="Rmale" value="Male">
                <input type="radio" id="f" class="Rm" name="Rfemale" value="Female">
        Course: <input type="checkbox" id="math" class="cm" name="Cmath" value="Math">
                <input type="checkbox" id="physic" class="cm" name="Cphysic" value="Physic">
                <input type="checkbox" id="eng" class="cm"  name="Ceng" value="English">
        <button type="button" id="b1">show</button>

//javascript

    <script>
        function getData(input){
            return document.getElementById(input).value;
        }
        function dataByClassName(st){
            var value=document.getElementsByClassName(st)
            for(var i=0;i < value.length;i++){
                if(value[i].checked){
                    return value[i].value;
                }
            }
        }
        document.getElementById("b1").onclick = function ()
        {
            var st={
                name : getData("text")+getData("text1"),
                gender : dataByClassName("Rm"),
                course : dataByClassName("cm")
            };
            alert(st.name+" "+st.gender+" "+st.course);
        };

    </script>

Ответ 12

Если вы можете использовать jQuery "Chamika Sandamal", это правильный путь. В случае, если вы не можете использовать jQuery, вы можете сделать что-то вроде этого:

function selectedRadio() {
    var radio = document.getElementsByName('mailCopy');
    alert(radio[0].value);
}

Примечания:

  • В целом для входов вы хотите иметь уникальные идентификаторы (не требование, а хорошая практика).
  • Все радиовходы, входящие в ту же группу, ДОЛЖНЫ иметь одинаковый атрибут имени, например
  • Вы должны установить атрибут value для каждого входа

Вот пример входных радиостанций:

<input type="radio" name="mailCopy" value="1" />1<br />
<input type="radio" name="mailCopy" value="2" />2<br />

Ответ 13

Поскольку вы хотите получить его с помощью простого javascript, вы можете использовать следующий код

var val = '';
if(document.getElementById('radio1').checked) {
  val = document.getElementById('radio1').value
}else if(document.getElementById('radio2').checked) {
  val = document.getElementById('radio2').value
}

Ответ 14

var mailcopy = document.getElementById('mailCopy').checked; 

if(mailcopy==true)
{
  alert("Radio Button Checked");
}
else
{
  alert("Radio Button un-Checked");
}

Ответ 15

Hy, вы должны сделать это таким образом.

function checkRadio () {
    if(document.getElementById('user1').checked) {
        return $('#user1').val();
    }else if(document.getElementById('user2').checked) {
        return $('#user2').val();
    }
}

Ответ 16

Используйте свойство element.checked.