Javascript 验证单选按钮时event.preventDefault不工作
我试图验证是否选中了所有项目(单选按钮)。下面的代码可以工作,但只要我单击警报窗口,它就会再次弹出。使用Javascript 验证单选按钮时event.preventDefault不工作,javascript,jquery,validation,preventdefault,Javascript,Jquery,Validation,Preventdefault,我试图验证是否选中了所有项目(单选按钮)。下面的代码可以工作,但只要我单击警报窗口,它就会再次弹出。使用event.stopPropagation()不会改变任何东西。它不是等待用户检查剩余的项目 $(document).ready(function(){ $(document).on('submit','#formular',function(event){ $("input:radio").each(function() {
event.stopPropagation()
不会改变任何东西。它不是等待用户检查剩余的项目
$(document).ready(function(){
$(document).on('submit','#formular',function(event){
$("input:radio").each(function() {
var val = $('input:radio[name=' + this.name + ']:checked').val();
if (val === undefined) {
alert("Not every item answered");
event.preventDefault();
}
});
});
});
您不会使用
preventDefault
退出循环,通常您会使用break
或continue
,但是在jQuery$上。每个必须使用return true
继续,并且return false
相当于break
$(document).ready(function(){
$(document).on('submit','#formular',function(event){
$("input:radio").each(function() {
var val = $('input:radio[name=' + this.name + ']:checked').val();
if (val === undefined) {
alert("Not every item answered");
return false;
}
});
// When invalid formular:
return false;
// When it's valid:
return true;
});
});
另见这个问题:
见:
我真的无法理解这里的问题!请贴一张小提琴->谢谢,但是当我使用return=false相反,它会立即加载下一页。如何检查公式是否有效?有很多方法可以做到这一点。我最喜欢而且最可靠的方法是通过Ajax将所有数据发送到服务器,让服务器验证数据并返回JSON,其中包含success true或success false+error message.ok,但如果我只想使用jquery。如何更改上述函数以实现此目的?您可以设置一个变量isValid=true
当一个字段不符合要求时,您可以设置isValid=false
,最后您只需返回此变量以中止或继续提交即可。但请记住:客户端验证是不可靠的。任何人都可以绕过Javascript,向服务器发送错误的内容。