更新:无论电子邮件地址是新的还是存在于mySQL数据库中,在输入地址时,对电子邮件字段的电子邮件地址检查都会返回"电子邮件地址已在使用中"。我希望它只在数据库中users表的电子邮件字段中存在电子邮件时返回错误。
注册页面的当前代码为:
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/jquery.validate.js"></script>
<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/jquery.validate.min.js"></script>
<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/additional-methods.js"></script>
<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/additional-methods.min.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script type="text/javascript">
$().ready(function(){
$("#register").validate({
errorElement: 'span',
errorPlacement: function (error, element) {
if (element.attr("type") == "checkbox") {
error.insertAfter($(".term"));
} else {
error.insertAfter(element);
}
},
rules: {
su_email : {
required: true,
email: true,
remote: "/email_check.php"
},
su_password : {
minlength: 6,
required: true
},
su_conpassword : {
equalTo : "#su_password"
},
su_name : {
minlength: 3,
required: true
},
su_phone : {
required: true
},
su_city : {
required: true
},
su_country : {
required: true
},
su_gender : {
required: true
},
su_quest : {
required: true
},
su_ans : {
required: true
},
su_terms : {
required: true
}
},
messages: {
su_email: {
required: "Please enter your email address",
email: "Please enter a valid email address",
remote: jQuery.validator.format("{0} is already in use")
},
su_password: {
required: "Provide a password",
minlength: jQuery.validator.format("Enter at least {0} characters")
},
su_conpassword: {
equalTo: "Repeat your password"
},
su_name: {
required: "Enter your full name",
minlength: jQuery.validator.format("Enter at least {0} characters")
},
su_phone: {
required: "Enter your phone number"
},
su_city: {
required: "Enter your city"
},
su_country: {
required: "Select your country"
},
su_gender: {
required: "Select your gender"
},
su_quest: {
required: "Select a security question"
},
su_ans: {
required: "Select a security answer"
},
su_terms: {
required: "You must agree to terms to join"
}
}
});
$('.condition').click(function () {
if ($(this).is(':checked')) {
$('#termscondition').dialog({
modal: true,
width: 600,
buttons: {
Ok: function() {
$( this ).dialog('close');
}
}
});
} else {
$('#termscondition').dialog('close');
}
});
});
</script>
<?php
include('includes/inc-public.php');
include('includes/classes/class.user.php');
$user = new User();
$email = $_GET['su_email'];
$valid = false;
header('Content-Type: application/json');
if(!is_null($email)){
$is_valid = $user->get_email($email);
if($is_valid){
echo json_encode($is_valid);
}
else{
echo json_encode($valid);
}
};
?>
在电子邮件字段中输入新电子邮件地址时的注册表单mysql数据库的用户表
来自文档:
服务器端响应必须是JSON字符串,该字符串对于有效元素必须为"true",对于无效元素可以为"false"、未定义或null,使用默认错误消息。如果服务器端响应是一个字符串,例如"该名称已被使用,请改为尝试peter123",则此字符串将显示为自定义错误消息,而不是默认错误消息。
因此,您需要将is_valid更改为true。