Проверка Jquery: как игнорировать заполнитель текста (выдает ошибку по умолчанию / пусто) - PullRequest
3 голосов
/ 05 февраля 2011

Я бы хотел, чтобы jquery validate игнорировал текст по умолчанию.
У меня есть способ проверить текст по умолчанию, чтобы проверить, является ли element.value == элементы alt text

Вот мой код, но он возвращает недействительный независимо от того, является ли он пустым, текст по умолчанию или любой другой текст:

$.validator.addMethod("notDefaultText", function(value) 
{
    if($(this).val()==$(this).attr('alt'))
              return false;

});

        rules: {
        Name: "required notDefaultText",
        Email: "required notDefaultText email"
    },

Ответы [ 3 ]

4 голосов
/ 07 марта 2012

У меня была та же проблема, и я решил ее следующим образом ...

Способ проверки текста по умолчанию заключается в проверке значения == заполнителя элементов attr.

$.validator.addMethod("notDefaultText", function (value, element) {
   if (value == $(element).attr('placeholder')) {
      return false;
   } else {
       return true;
     }
});

$("yourForm").validate({
        rules: {
            title: { required: true,
                notDefaultText: true
            },
            description: {
                required: true,
                notDefaultText: true,
                minlength: 2,
                maxlength: 400
            }
        },
        messages: {
            title: "Error text",
            description: {
                required: "Error text",
                notDefaultText: "Error textp",
                minlength: "Error text",
                maxlength: "Error text"
            }
        }

    });
0 голосов
/ 05 февраля 2011

Вы, вероятно, используете alt для элемента, который не принимает этот атрибут alt для изображений и т. Д., А не для полей ввода!Поэтому браузер не примет его.

Попробуйте использовать атрибут типа «data-default» или что-нибудь с «data- *» для хранения этих значений.

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

0 голосов
/ 05 февраля 2011

HTML5 поддерживает заполнители как часть разметки. Вы можете использовать jQuery для работы с другими браузерами.

Хорошо представленный способ сделать это представлен на http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html

...