javascript - JS验证,为什么这段代码不起作用?

标签 javascript validation

我无法在 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 属性(sinserviciosdosservicios)。它永远不会返回空字符串,而这正是您在 if 条件中测试的内容。

关于javascript - JS验证,为什么这段代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006916/

相关文章:

javascript - RXJS Angular HTTP 调用 HTTP 请求来检查互联网连接

javascript - jQuery 验证 ".error"字段 CSS

c# - ASP.NET MVC 2 中的验证

asp.net-mvc - TinyMCE客户端验证问题

javascript - JavaScript 的排序(compareFunction)是如何工作的?

javascript - 为什么 if 语句不起作用并使用显示 : none? 使我的元素消失

html - 验证器中的流浪开始标记 HTML?

ruby-on-rails - 关于验证错误的回形针错误的附件 URL

javascript - jquery,点击放大图片,然后点击agian让它回到之前的宽度

javascript - 使用 Relay 更新 React 状态