基本上我有一个代码,如果他写的ID已经存在或者太短但显示用户错误,但问题是我无法弄清楚如何在出现错误的情况下阻止表单提交。< / p>
需要弹出警报窗口的代码:
jQuery("#submit").click(function(e){
if(error === '1')
{
alert("There are some errors in the form.");
e.preventDefault();
}
});
然后我使用AJAX得到答案并显示错误:
if(msg == 'OK')
{
var error = '0';
}
else
{
var error = '1';
jQuery("#idCheck_msg").slideDown("fast");
jQuery("#idCheck_text").text(msg).slideDown("fast");
}});
}
我尝试使用var error
做一些事情,但Firebug说错误未定义,即使出现错误也会提交表单。
有任何帮助吗? ;)
答案 0 :(得分:3)
将error
定义为全局变量。这是在使用变量之前删除var
:
var error;
if(msg == 'OK')
{
error = '0';
}
else
{
error = '1';
...
答案 1 :(得分:1)
在提交表单后,您似乎设置了error
的值,但在提交表单之前检查了它的值。
鉴于帖子中的代码,当您尝试检查其值时,error
将不确定。此外,在提交表单后,error
仍将是未定义的,因为您使用var
关键字在AJAX响应处理程序的范围内声明它。
如果在设置var
的值时从AJAX处理程序中删除error
关键字,则提交逻辑应该第二次运行。
底线: error
的值需要在提交表单之前设置为,而不是在AJAX响应处理程序中。
答案 2 :(得分:0)
什么时候进行AJAX调用?在您从AJAX调用中获得成功响应之前,您将无法检查“错误”。您还需要删除'var',使其处于全局范围内。
如果在提交表单时也进行了AJAX调用,则需要将错误检查移到处理AJAX响应的代码中。