我希望我的脚本表现为在提交表单时,如果未选中任何单选按钮,它将提醒用户选择一个。我已经编写了代码,但是没有用。请帮助。
function validateRadios() {
var c = document.getElementsByName("qualification");
for(var a=0;a<=c.length;a++) {
if(c[a].checked ) {
alert("Form OK!");
return true;
}
}
alert("Please select one");
return false;
}
<form onSubmit="return validateRadios();">
Select your qualification
Intermediate<input type="radio" name="qualification" value="inter" />
Bachelors<input type="radio" name="qualification" value="Bchlrs"/>
Masters<input type="radio" name="qualification" value="mstrs"/>
</br>
<input type="submit" value="Lock details"/>
</form>
答案 0 :(得分:1)
问题在您的 for循环条件中。它会迭代到length + 1个元素。只需删除=
条件就可以了。
function validateRadios() {
var c = document.getElementsByName("qualification");
for(var a=0;a<c.length;a++) {
if(c[a].checked ) {
alert("Form OK!");
return true;
}
}
alert("Please select one");
return false;
}
<form onSubmit="return validateRadios();">
Select your qualification
Intermediate<input type="radio" name="qualification" value="inter" />
Bachelors<input type="radio" name="qualification" value="Bchlrs"/>
Masters<input type="radio" name="qualification" value="mstrs"/>
</br>
<input type="submit" value="Lock details"/>
</form>
答案 1 :(得分:0)
这样会更好:)
function validateRadios() {
var status = false
var c = document.getElementsByName("qualification").forEach((item) => {
status = item.checked ? true : status
})
console.log(status)
}
它对您不起作用,因为它不仅返回包含元素而且包含方法的数组。