我无法在 JS 中进行验证,并且不明白为什么它不起作用。 如果至少有一个复选框未选中,用户应该收到提醒。 它不起作用,因为即使没有选中任何复选框,表单也会正常提交。
<body>
<script>
function validar()
{
var s1=document.getElementById('s1');
var s2=document.getElementById('s2');
if (s1.value==''||s2.value=='')
{
alert("You must check at least one!");
return false;
}
}
</script>
<form name="calcular" onsubmit="return validar()" method="post">
<input type ="checkbox" name="servicios[]" id="s1" value="sinservicios">Sin servicios<br>
<input type ="checkbox" name="servicios[]" id="s2" value="dosservicios">Dos servicios<br>
...
最佳答案
您可以尝试使用 checked
属性来确保至少选中 2 个复选框之一:
<script>
function validar() {
var s1 = document.getElementById('s1');
var s2 = document.getElementById('s2');
if (!s1.checked && !s2.checked) {
alert('You must check at least one!');
return false;
}
return true;
}
</script>
另请注意,如果验证成功,我们应该返回 true
。
您的代码不起作用的原因是您使用了 value
属性。无论用户是否选中此复选框,它总是会返回复选框的 value
属性(sinservicios
或 dosservicios
)。它永远不会返回空字符串,而这正是您在 if
条件中测试的内容。
关于javascript - JS验证,为什么这段代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006916/