【发布时间】:2016-02-03 23:50:53
【问题描述】:
我正在使用以下代码验证表单:
$('#wpcf7-f96-o1 form').submit(function(e){
e.preventDefault();
var data = [
'[name="text-854"]',
'[name="text-855"]',
'[name="text-856"]',
'[name="email-375"]'
]
$.each(data, function(key, value) {
if($('input'+value).val() == ''){
$('input'+value).css({'border':'1px solid red'})
valid = false
} else {
$('input'+value).css({'border':'1px solid #888'})
valid = true
}
})
if(valid){
$('#wpcf7-f96-o1 form').submit()
$('.form_success').css({'display':'block'});
return false;
} else {
$('.form_error').css({'display':'block'});
return false;
}
});
通过阅读有关此问题的堆栈溢出,我了解到这可能是某个地方的无限循环。我只是不确定自己做错了什么。
谢谢!
【问题讨论】:
-
您正在提交处理程序中触发提交,最终进入无限循环。您的逻辑在这方面也没有意义,因为您在同一个表单上引发相同事件后从提交处理程序
return false,所以我不确定您到底期待什么行为。 -
@Stryner 不确定您要做什么,但这不起作用。 @Rory McCrossan 我希望表单在valid 为真时提交(所有字段都有值)。所以我应该删除 e.preventDefault() ,然后如果数据不存在则返回 false ..?
-
没错。我为您添加了带有完整示例的答案。
标签: jquery