Попробуйте что-то вроде
$.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")
);
В приведенном коде:
- путь - это корневой путь вашего приложения;
- params [0] - имя атрибута для проверки уникальности;
- params [1] - это идентификатор объекта, если вы тоже хотите проверить правку, исключите себя;
- params [2] - это путь к файлу php, который будет проверяться.
В результате чего-то вроде:
rules:
{
email: {
required: true,
unique:['email', $('#user_id').val(),'uniqueemail.php'],
email: true
},
PHP uniqueemail.php, найдите значение в поле email , если возвращено пустое значение или пользователь с идентификатором равен $ ('# user_id'). Val () , поэтому верните true, иначе верните false.
Обратите внимание, что атрибут async установлен false , это отступление, но он выполнит эту работу.