使用javascript单击时获取单选输入的值

时间:2019-06-10 18:42:14

标签: javascript html

我试图在单击之前获取单选输入的值,以存储并显示在表单末尾的摘要中,然后再提交。我无权直接将click函数添加到输入中,因此我在输入中循环并添加了click事件。现在,我只需要获取单击输入的值即可。这是代码:

var radios = document.getElementsByName('fields');
    for (var i = 0, length = radios.length; i < length; i++)
    {
        radios[i].addEventListener("click", getValue);
    }
function getValue(){
    console.log(radios.value);
    }

我得到的答复是不确定的。

3 个答案:

答案 0 :(得分:2)

不要使用'click'事件。即使没有click,输入状态也可以更改(即:制表键和使用空格键等)

使用'change''input'事件

const el_radio_1 = document.querySelectorAll('[name="radio_1"]');
const fn_radio_1 = evt => {
  console.log(evt.target.value)
};

el_radio_1.forEach(el => {
  el.addEventListener('change', fn_radio_1)
});
<label>
  <input type="radio" name="radio_1" value="a"> Test a 
</label>
<label>
  <input type="radio" name="radio_1" value="b" checked> Test b
</label>

如果您使用标准的Function,请使用this.value

function fn_radio_1(evt)  {
  console.log(this.value)
  console.log(evt.type)
}

答案 1 :(得分:1)

radios没有value。如果要获取单击的收音机的值,请使用this.value

答案 2 :(得分:-1)

如果您的html喜欢:

<label><input type="radio" name="gender" value="male">Male</label> 
<label><input type="radio" name="gender" value="female">Female</label>

然后您可以获取所选单选按钮的值,例如:

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