已更新 我使用jQuery验证插件和远程方法来检查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'];
?>
答案 0 :(得分:2)
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";
?>
答案 1 :(得分:-1)
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.checkout-form').validate({
rules: {
on0 : {
required : true,
remote : {
url: YOUR_HOST,
type: "post",
data: {
email_address: function()
{
return $("#email_address").val();
}
}
}
},
},
messages : {
required:"message",
remote: "message"
}
});
});
</script>
in html
<input type="text" name="on0" value="Your e-mail" class="form-field no-mr check-email" id="email_address"/>
在PHP代码中
<?php
echo $_POST['email_address'];
?>