0

我希望 jquery 验证数据库中唯一电子邮件地址的更新。

文本框电子邮件中的示例默认加载值是 abc@test.com

在数据库中是 abc@test.com,fff@test.com, ddd@test.com

如果用户输入 abc@test.com 那么它将返回 true (可以保存数据)

如果使用类型 fff@test.com 或 ddd@test.com 则返回 false(已经存在)

当用户在文本框中加载默认数据(abc@test.com)时我的问题无法将其保存到数据库中,

除了我在文本框电子邮件上丢失了 foucs 然后它可以成功保存

编码

<?php
//MySQL class: http://mbe.ro/2009/08/30/fast-and-easy-php-mysql-class/
require('../shared/db-class.php');
$email = $_REQUEST["email_address"];
//$email = 'test@gmail.com'; // Just for testing.
$validate = new mysql();
$checkemail = $validate->query("SELECT * FROM users WHERE email_address = '$email'");
if (count($checkemail) == 1){
$valid = "false";
} else {
$valid = "true";
}
echo $valid;
?>

// jQuery
// FORM VALIDATION
$('#form').validate({
rules:{
first_name: "required",
last_name: "required",
email_address: {
required: true,
email: true,
remote: "email-check.php"
}
},messages:{
email_address: {
remote: jQuery.format("{0} is already in use!")
}
}

});
4

2 回答 2

0

我认为没有一种有效的方法可以满足您的要求。您可能无法在前面验证电子邮件的唯一性,但您可以创建一个新的 ajax 来验证服务器中的电子邮件唯一性。并且 jquery validate 仅用于前面。

于 2012-11-02T08:14:51.467 回答
0

Try to start jQuery validation on blur or on focusout only.

于 2012-11-02T08:40:03.017 回答