更新
我正在使用jQuery validate插件和远程方法来检查ajax的电子邮件可用性,但我不明白为什么ajax只调用一次.当输入电子邮件时,ajax进行调用并在控制台中打印输入的电子邮件,但如果我删除它并写入另一封电子邮件则没有任何反应.
我正在使用jQuery validate插件和远程方法来检查ajax的电子邮件可用性,但我不明白为什么ajax只调用一次.当输入电子邮件时,ajax进行调用并在控制台中打印输入的电子邮件,但如果我删除它并写入另一封电子邮件则没有任何反应.
HTML
<input type="text" name="on0" value="Your e-mail" class="form-field no-mr check-email">
jQuery的
jQuery.validator.addMethod('defaultInvalid',function(value,element) {
return !(element.value == element.defaultValue);
},'Custom Error Message for this field');
$('.checkout-form').validate({
rules: {
on0 : 'required defaultInvalid email'
}
});
$('.check-email').rules("add",{
"remote" : {
url: 'c/',type: "post",dataType: 'html',data: {
check: function() {
return $('.check-email').val();
}
},success: function(data){
console.log(data);
},error: function(data){
console.log(data);
}
}
});
PHP在哪里发布ajax
<?PHP echo $_POST['check']; ?>
解决方法
ajax只触发一次的原因是你已经覆盖了jQuery validate的远程方法的成功回调.保持简单,尝试这样的事情:
<input name="email_address"/>
用脚本
<script>
$(function () {
$('form').validate({
rules: {
email_address: {
required:true,remote: {
url: "your_script.PHP"
}
}
},debug: true,submitHandler: function () { alert('ok'); }
});
});
</script>
和PHP一样
<?PHP echo $_GET['email_address'] == "bob"; ?>