Javascript 如果有错误,请阻止表单提交
基本上,我有一个代码,如果用户编写的ID已经存在或太短,它会向用户显示一个错误,但问题是我不知道如何防止表单在出现错误时提交 需要弹出警报窗口的代码:Javascript 如果有错误,请阻止表单提交,javascript,jquery,ajax,var,Javascript,Jquery,Ajax,Var,基本上,我有一个代码,如果用户编写的ID已经存在或太短,它会向用户显示一个错误,但问题是我不知道如何防止表单在出现错误时提交 需要弹出警报窗口的代码: jQuery("#submit").click(function(e){ if(error === '1') { alert("There are some errors in the form."); e.preventDefault(); } });
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也会提交
有什么帮助吗?;) 您似乎在提交表单之后设置
错误的值,但在提交表单之前检查其值
给定帖子中的代码,错误
将在您尝试检查其值时未定义。此外,表单提交后,error
仍将是未定义的,因为您正在使用var
关键字在AJAX响应处理程序的范围内声明它
如果在设置error
的值时从AJAX处理程序中删除var
关键字,那么您的提交逻辑应该第二次起作用
底线:在提交表单之前,需要设置错误的值,不在AJAX响应处理程序中。在提交表单后设置错误的值,但在提交表单前检查其值
给定帖子中的代码,错误
将在您尝试检查其值时未定义。此外,表单提交后,error
仍将是未定义的,因为您正在使用var
关键字在AJAX响应处理程序的范围内声明它
如果在设置error
的值时从AJAX处理程序中删除var
关键字,那么您的提交逻辑应该第二次起作用
底线:在提交表单之前,需要设置error
的值,而不是在AJAX响应处理程序中。何时进行AJAX调用?在从AJAX调用获得成功响应之前,您将无法检查“error”。您还需要删除“var”,使其处于全局范围
如果在提交表单时也进行了AJAX调用,则需要将错误检查移至处理AJAX响应的代码内部。何时进行AJAX调用?在从AJAX调用获得成功响应之前,您将无法检查“error”。您还需要删除“var”,使其处于全局范围
如果在提交表单时也进行了AJAX调用,则需要将错误检查移到处理AJAX响应的代码内部。将错误定义为全局变量。即在使用变量之前删除var
:
var error;
if(msg == 'OK')
{
error = '0';
}
else
{
error = '1';
...
将error
定义为全局变量。即在使用变量之前删除var
:
var error;
if(msg == 'OK')
{
error = '0';
}
else
{
error = '1';
...
您是否在if
之前声明变量error
?不,似乎我需要在AJAX响应之前和之外执行此操作,完全不知道我应该如何执行此操作。您是否在if
之前声明变量error
?不,似乎我需要在AJAX响应之前和之外执行此操作,我完全不知道该怎么做。它是在某个字段值更改时生成的(就像我说的,它检查.change()
上是否已经存在ID)。它是在某个字段值更改时生成的(就像我说的,它检查.change()上是否已经存在ID)
就这么简单!谢谢老兄。重要提示:请注意,您需要使用var
在全局级别定义变量,然后只需引用它而不使用var
关键字。想想var
就像CreateThis
一样。显然,当您只想访问/设置它时,您不需要使用var
。非常简单就这样!谢谢老兄。重要提示:请注意,您需要使用var
在全局级别定义变量,然后只需引用它而不使用var
关键字。想想var
就像CreateThis
。显然,当您只想访问/设置它时,您不需要使用var
。