基本上我有一个代码,显示用户一个错误,如果他写的ID已经存在或太短,但问题是我不能弄清楚如何防止表单提交的地方有一个错误。
需要弹出一个警告窗口的代码:
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说,错误是没有定义和表单get的提交,即使有一个错误。
帮忙吗?div;)
将error
定义为全局变量。即在使用变量
var
var error;
if(msg == 'OK')
{
error = '0';
}
else
{
error = '1';
...
似乎你在表单提交后设置error
的值,但在表单提交之前检查它的值
给定代码在你的帖子,error
将是未定义的,当你试图检查它的值。此外,在提交表单之后,error
仍然是未定义的,因为您使用var
关键字在AJAX响应处理程序的范围内声明了它。
如果您在设置error
的值时从AJAX处理程序中删除了var
关键字,那么您的提交逻辑应该第二次工作。
底线: error
的值需要在表单提交之前设置,而不是在AJAX响应处理程序中。
何时进行AJAX调用?在从AJAX调用获得成功响应之前,您将无法检查"错误"。此外,你需要删除'var',使其处于全局作用域。
如果在提交表单时也进行了AJAX调用,则需要将错误检查移到处理AJAX响应的代码中。