плагин проверки JQuery и проверить уникальное поле? - PullRequest
1 голос
/ 12 января 2010

В настоящее время я использую плагин проверки jQuery с cakephp в моем новом проекте.

Он работает идеально, пока мне не нужно будет выполнить уникальную проверку поля электронной почты через ajax для проверки с базой данных.

Я не знал, как сделать так, чтобы плагин делал уникальную проверку по электронной почте с базы данных.

1007 * спасибо *

Ответы [ 4 ]

3 голосов
/ 12 января 2010

Я считаю, что вы используете вызов AJAX (через плагин) для проверки уникальной электронной почты на сервере, да?

Я бы предложил использовать addMethod плагина для валидации для создания пользовательской валидации, в которой вы можете сделать AJAX вызов (который будет частью ядра jQuery). 1007 *

В этой теме есть сообщение, которое вы можете изучить:
JQuery Validate Plugin - Как создать простое, настраиваемое правило?

Обратите внимание, что вам придется самостоятельно реализовывать серверный скрипт.

Вот еще одна статья, которая должна быть полезной (с использованием jQuery и PHP):
Проверка электронной почты уже существует - Ajax - Jquery

1 голос
/ 27 августа 2013

Если вы хотите проверить, является ли электронная почта уникальной, вы можете использовать удаленное правило. Это от: http://jqueryvalidation.org/remote-method

Пример: делает обязательным поле электронной почты, электронное письмо и удаленный запрос, чтобы проверить, занят ли данный адрес.

$( "#myform" ).validate({
  rules: {
    email: {
    required: true,
    email: true,
    remote: "check-email.php"
   }
  }
});

Пример. Делает обязательным поле электронной почты, адрес электронной почты и удаленный запрос, чтобы проверить, занят ли данный адрес. Кроме того, для метода http установлено значение «post», а имя пользователя отправляется вместе с адресом электронной почты.

$( "#myform" ).validate({
  rules: {
   email: {
     required: true,
     email: true,
     remote: {
          url: "check-email.php",
          type: "post",
          data: {
             username: function() {
              return $( "#username" ).val();
              }
          }
     }
  }
 }
});
1 голос
/ 19 июня 2013

Синтаксис простой

$.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 - Как создать простое пользовательское правило?

0 голосов
/ 07 июня 2016

Попробуйте что-то вроде

  $.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 , это отступление, но он выполнит эту работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...