我试图在单击之前获取单选输入的值,以存储并显示在表单末尾的摘要中,然后再提交。我无权直接将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);
}
我得到的答复是不确定的。
答案 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();