JQuery表单保持ajax指示器打开并赢得&x27;不要屈服

JQuery表单保持ajax指示器打开并赢得&x27;不要屈服,jquery,forms,Jquery,Forms,我使用jQuery1.3验证表单并将其提交到PHP页面,该页面将JSON编码服务器响应以显示在原始表单页面上 我尝试过在没有JQuery部分的情况下提交表单,一切似乎都很好,但是当我添加JQuery时,它不会提交,并且会不断显示ajax指示器 这是我的密码: $(文档).ready(函数(){ 变量选项={ 目标:'#messagebox', url:'updateregistration.php', 类型:'POST', 提交前:验证密码, 成功:processJson, 数据类型:“js

我使用jQuery1.3验证表单并将其提交到PHP页面,该页面将JSON编码服务器响应以显示在原始表单页面上

我尝试过在没有JQuery部分的情况下提交表单,一切似乎都很好,但是当我添加JQuery时,它不会提交,并且会不断显示ajax指示器

这是我的密码:


$(文档).ready(函数(){

变量选项={ 目标:'#messagebox',
url:'updateregistration.php',
类型:'POST', 提交前:验证密码, 成功:processJson, 数据类型:“json”
}; $(“表单:非(.filter):输入:可见:启用:第一”).focus(); $(“#webmailForm”).validate({

errorLabelContainer:#messagebox“, 规则:{ 名字:“必选”, 姓:“必选”, 当前密码:“必需”, 直接电邮:{ 要求:正确, 电子邮件:真的 }, 直接电话:“必需” }, 信息:{ 姓名:{必需:“请输入您的姓名
”}, directemail:{必需:“请输入您的直接电子邮件地址
”,电子邮件:“您的电子邮件地址似乎无效
(示例:name@domain.com)
“}, 姓氏:{必填:“请输入您的姓氏
”}, directtelephone:{必填:“请输入您的直接电话号码
”}, currentpassword:{必需:“请输入当前密码
”}

}

}))

$('#webmailForm')。提交(函数(){

$('#ajaxindicator').show()

}))

函数processJson(数据){ 美元(“#webmailForm”)。淡出(“快速”); $(“#messagebox”).fadeIn(“fast”); $(“#messagebox”).css({'background-image':'url(../images/messageboxbackgroundgreen.png)','border-color':'#009900','border-width':'1px','border-style':'solid'}); var forename=data.forename; var姓氏=数据。姓氏; var directemail=data.directemail; var directphone=data.directphone; var dateofbirth=data.dateofbirth; var companyname=data.companyname; var fulladdress=data.fulladdress; var电话=数据电话; var fax=data.fax; var email=data.email; var网站=data.website; var fsanumber=data.fsanumber; var membertype=data.membertype; var网络=数据网络

$("#messagebox").html('<h3>Registration Update successful!</h3>' + '<p><strong>Member Type:</strong> ' + membertype + '<br>' + '<strong>Forename:</strong> ' + forename + '<br><strong>Surname:</strong> ' + surname + '<br><strong>Direct E-mail:</strong> ' + directemail + '<br><strong>Direct Phone:</strong> ' + directphone + '<br><strong>Date of Birth:</strong> ' + dateofbirth + '<br><strong>Company:</strong> ' + companyname + '<br><strong>Address:</strong> ' + fulladdress + '<br><strong>Telephone:</strong> ' + telephone + '<br><strong>Fax:</strong> ' + fax + '<br><strong>E-mail:</strong> ' + email + '<br><strong>Website:</strong> ' + website + '<br><strong>FSA Number:</strong> ' + fsanumber + '<br><strong>Network:</strong> ' + network + '</p>'); 
$(“#messagebox”).html('Registration Update successful!'++'成员类型:'+membertype++'
'名字:'+ForName++'
姓氏:'+姓氏+'
直接电子邮件:'+directemail+'
直接电话:'+directphone+'

出生日期:'“
公司:+companyname+”
地址:+fulladdress+”
电话:+phone+”
传真:+Fax+”
电子邮件:+email+”
网站:+Website+”
FSA号码:+fsanumber+”
网络: “+网络+”

);
$('#ajaxindicator').hide()

}

函数validatePassword(){ var clientpassword=$(“#clientpassword”).val(); var currentpassword=$(“#currentpassword”).val(); var currentpasswordmd5=hex_md5(currentpassword); if(currentpasswordmd5!=客户端密码){ $(“#messagebox”).html(“您输入了错误的当前密码,请重试。”); $('#ajaxindicator').hide(); 返回false; } }


我有一个禁用的文本框和一些隐藏的文本框。这可能是问题吗?

尝试隐藏/显示ajax请求状态的进度条,请检查以下代码:

 jQuery(document).ajaxSend(function(){
   jQuery("#loading-mask").show();
  });

 jQuery(document).ajaxComplete(function(){
   jQuery("#loading-mask").hide();
 });

从代码中删除$('#ajaxindicator').show();谢谢Chirag!我已经从代码中删除了$('#ajaxindicator').show();现在指示器出现了一瞬间,然后消失了。问题是,表单仍然不会提交。
 jQuery(document).ajaxSend(function(){
   jQuery("#loading-mask").show();
  });

 jQuery(document).ajaxComplete(function(){
   jQuery("#loading-mask").hide();
 });