Форма JQuery остается с включенным индикатором ajax и не будет отправлять - PullRequest
0 голосов
/ 26 апреля 2010

Я использую JQuery 1.3 для проверки и отправки формы на страницу PHP, которая JSON кодирует ответ сервера для отображения на исходной странице формы.

Я попытался отправить форму без части JQuery, и все, кажется, работает нормально, но когда я добавляю JQuery, она не отправляется и постоянно отображает индикатор ajax.

Вот мой код:

<br> </p> <p>$(document).ready(function(){</p> <p>var options = { target: '#messagebox',<br> url: 'updateregistration.php',<br> type:'POST', beforeSubmit: validatePassword, success: processJson, dataType: 'json'<br> }; $("form:not(.filter) :input:visible:enabled:first").focus(); $("#webmailForm").validate({</p> <p>errorLabelContainer: "#messagebox", rules: { forename: "required", surname: "required", currentpassword: "required", directemail: { required: true, email: true }, directtelephone: "required" }, messages: { forename: { required: "Please enter your forename<br>" }, directemail: { required: "Please enter your direct e-mail address<br>", email: "Your e-mail address does not appear to be valid<br />(Example: name@domain.com)<br>" }, surname: { required: "Please enter your surname<br>" }, directtelephone: { required: "Please enter your direct telephone number<br>" }, currentpassword: { required: "Please enter your current password<br>" }</p> <p>}</p> <p>});</p> <p>$('#webmailForm').submit(function() {</p> <p>$('#ajaxindicator').show();</p> <pre><code> $(this).ajaxSubmit(options); return false; });

}); * * 1 010

функция processJson (данные) { $ ( "# WebmailForm") Затухание ( "быстрый"). $ ( "# MessageBox") FadeIn ( "быстрый"). $ ("# messagebox"). css ({'background-image': 'url (../ images / messageboxbackgroundgreen.png)', 'border-color': '# 009900', 'border-width': '1px », 'стиль границы': 'твердый'}); var forename = data.forename; фамилия var = data.surname; var directemail = data.directemail; var directphone = data.directphone; var dateofbirth = data.dateofbirth; var companyname = data.companyname; var fulladdress = data.fulladdress; var phone = data.telephone; var fax = data.fax; var email = data.email; var website = data.website; var fsanumber = data.fsanumber; var membertype = data.membertype; var network = data.network;

$("#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>'); 

$ ( '# ajaxindicator') скрыть ();.

}

function validatePassword () { var clientpassword = $ ("# clientpassword"). val (); var currentpassword = $ ("# currentpassword"). val (); var currentpasswordmd5 = hex_md5 (текущий пароль); if (currentpasswordmd5! = clientpassword) { $ ("# messagebox"). html ("Вы ввели неверный текущий пароль, повторите попытку."); $ ( '# Ajaxindicator') скрыть (). вернуть ложь; } }

У меня отключено текстовое поле и некоторые скрытые. Может ли это быть проблемой?

1 Ответ

0 голосов
/ 26 апреля 2010

попытаться скрыть / показать индикатор выполнения в состояниях запроса AJAX, проверьте этот код:

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

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

удалить этот $ ('# ajaxindicator'). Show (); из вашего кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...