如果有错误,请阻止表单提交

时间:2011-10-21 13:50:41

标签: javascript jquery ajax var

基本上我有一个代码,如果他写的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说错误未定义,即使出现错误也会提交表单。

有任何帮助吗? ;)

3 个答案:

答案 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响应的代码中。