我有以下代码:
<script type="text/javascript">
$(function(){
$('#fgotpwfield').hide();
$('#login_submit').click(function() {
$('#form_result').fadeOut('fast');
$('#myccrxlogin input').removeAttr('disabled');
$('#myccrxlogin').submit();
});
if ($("#myccrxlogin").length > 0) {
$("#myccrxlogin").validate({
rules: {
email: { required: true, email: true },
password: 'required'
},
messages: {
email: { required: 'Your email address is required.',
email: 'Please enter a valid email address.'},
password: 'Your password is required.'
},
submitHandler: function(form) {
$('#myccrxlogin input').attr('disabled','true');
$('#login_submit').fadeOut('fast');
$('#forgotpw').fadeOut('fast');
$('body').append('<div id="page_load"></div>');
var email = $("#email").val();
var pw = $("#password").val();
var data = 'email=' + email + '&password=' + pw;
$.ajax({
url: "hidden url",
type: "POST",
data: data,
cache: false,
success: function (html) {
$('#page_load').remove();
if(html == 'OK') {
alert(html);
} else {
//$("#password").val('');
$("#form_result").html(html);
$('#form_result').fadeIn('slow');
$('#myccrxlogin input').removeAttr('disabled');
$('#login_submit').fadeIn('slow');
$('#forgotpw').fadeIn('slow');
}
}
});
} /*close submit handler */
});
};
});
</script>
<div id="form_result" style="margin:10px; display:none;" class="field-submit-error"></div><div style="clear:both;"></div>
<div id="loginformfield">
<p style="font-size:24px; font-weight:bold; font-family:Arial, Helvetica, sans-serif; color:#f93;">Login</p>
<form class="loginform" id="myccrxlogin" method="post" target="_parent">
<p>
<input name="email" type="text" id="email" tabindex="1" />
<label for="email">E-mail</label></p>
<p><input name="password" type="password" class="text large required" id="password" tabindex="2" />
<label for="password">Password</label></p>
<div class="loading"></div>
<p><a href="#" id="forgotpw">I forgot my password</a></p>
<p><a class="readmore" href="#" id="login_submit" style="margin-bottom:0.5em;" tabindex="3">Login!</a></p>
</form>
</div>
一个人输入他们的电子邮件和密码,首先验证该文件,然后成功通过ajax调用。 ajax PHP页面echo是错误或'OK'。我知道代码变为'OK',因为警报(html)被触发但它无限运行。不确定为什么?
我相信我可能会遇到此处所述的递归问题:http://docs.jquery.com/Plugins/Validation#General_Guidelines虽然我不确定是否适用。
答案 0 :(得分:1)
我无法介入,但我相信您需要让submithandler
返回false。
我相信表单是由表单操作和ajax提交提交的。
答案 1 :(得分:0)
查看您发布的递归链接,您需要更改此行:
$('#myccrxlogin').submit();
以便提交原始表单,而不是表单的jquery-ized版本。在他们的例子中,
$(form).submit();
变为
form.submit();
尝试以类似的方式更改提交行。
答案 2 :(得分:0)
令人惊讶的不明确和疯狂的答案是:我必须将以下内容添加到我的ajaxed-PHP页面中。关于在本地运行或使用我的设置运行的东西是古怪的。希望这有助于某人。
添加到ajax php页面的第一行:
header('Access-Control-Allow-Origin: *');