我目前在我的新項目中使用了cakephp的jQuery驗證插件。jquery驗證插件並檢查唯一字段?
它的工作完美,直到我需要通過Ajax獨特的檢查,以電子郵件字段,檢查與數據庫..
我不知道如何把這個插件使從數據庫到電子郵件的唯一驗證。
感謝名單
我目前在我的新項目中使用了cakephp的jQuery驗證插件。jquery驗證插件並檢查唯一字段?
它的工作完美,直到我需要通過Ajax獨特的檢查,以電子郵件字段,檢查與數據庫..
我不知道如何把這個插件使從數據庫到電子郵件的唯一驗證。
感謝名單
我想你指的使用AJAX調用(通過插件)與服務器進行檢查獨特的電子郵件,啊?
我會建議使用驗證插件的addMethod創建一個自定義驗證,您可以在其中調用AJAX調用(它將成爲jQuery核心的一部分)。
有一個SO張貼關於這個主題,你可以探索:
JQuery Validate Plugin - How to create a simple, custom rule?
請注意,您將不得不自己實現服務器端腳本。
這裏的另一篇文章應該是有用的(使用jQuery和PHP):
Check email already exist – Ajax – Jquery
的語法很簡單
$.validator.addMethod("eventName",
function(value, element) {
// condition returns true or false
}, "Error message to display");
});
事件名字叫做形式
<input type="text" name="name" class="eventName" />
如果有任何疑問,請參閱此鏈接
jQuery Validate Plugin - How to create a simple custom rule?
如果要檢查電子郵件是否唯一,可以使用遠程規則。 距離:http://jqueryvalidation.org/remote-method
實施例:使所需的電子郵件字段,電子郵件和確實的遠程請求,以檢查是否在給定的地址已被使用。
$("#myform").validate({
rules: {
email: {
required: true,
email: true,
remote: "check-email.php"
}
}
});
實施例:使所需的電子郵件字段,電子郵件和確實的遠程請求,以檢查是否在給定的地址已被使用。另外,http方法設置爲「發佈」,並且用戶名與電子郵件地址一起發送。
$("#myform").validate({
rules: {
email: {
required: true,
email: true,
remote: {
url: "check-email.php",
type: "post",
data: {
username: function() {
return $("#username").val();
}
}
}
}
}
});
試着這麼做
$.validator.addMethod("unique",
function(value, element, params) {
var isUnique = false;
if(value == '')
return isUnique;
id_send= '';
if(params[1] !='')
id_send ='id='+params[1]+'&';
$.ajax({
url: "path"+params[2],
type : 'GET',
async: false,
data: id_send+'field=' + params[0] + "&value=" + value,
dataType: 'json',
cache: true,
success: function(data){
isUnique = data;
}
});
return isUnique;
},
jQuery.validator.format("Value already in use")
);
在上面的代碼:
的東西等導致的:
rules:
{
email: {
required: true,
unique:['email', $('#user_id').val(),'uniqueemail.php'],
email: true
},
的PHP uniqueemail.php,在現場電子郵件搜索值,如果返回空或ID的用戶等於$('# user_id')。val()所以返回true,否則返回false。
注意,異步屬性設置假,這是一個挫折,但會做的工作。