Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果有错误,请阻止表单提交_Javascript_Jquery_Ajax_Var - Fatal编程技术网

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

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(); } });

基本上,我有一个代码,如果用户编写的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也会提交


有什么帮助吗?;)

您似乎在提交表单之后设置
错误
的值,但在提交表单之前检查其值

给定帖子中的代码,
错误
将在您尝试检查其值时未定义。此外,表单提交后,
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