Проверка jQuery: не значение по умолчанию - PullRequest
4 голосов
/ 13 октября 2010

У меня есть элемент выбора категории в форме.Форма проверяется с помощью jQuery следующим образом:

    $('#myForm').validate({
    rules: {
        text: {
              required: true
        },
        category: {
            required: true
        }
    },
    messages: {
        text: {
            required: "Text required"
        },
        category: {
            required: "Category required"
        }
    }

При загрузке страницы значением категории по умолчанию является «---» (без кавычек).Когда я отправляю форму, проверка говорит, что все в порядке, потому что «---» не является ничем.Как я могу заставить его прекратить отправку, когда '---' используется в качестве категории?Другие категории примерно такие: Category1.Нужно выбрать одну из возможностей, и я не могу изменить выпадающий список.

Спасибо !!

Ответы [ 2 ]

13 голосов
/ 13 октября 2010

Вы можете добавить пользовательское правило, например:

jQuery.validator.addMethod("notEqual", function(value, element, param) {
  return this.optional(element) || value !== param;
}, "Please choose a value!");

Затем использовать это правило в вашем rules, например:

    category: {
        required: true,
        notEqual: "---"
    }

Вы можете проверитьэто здесь .

0 голосов
/ 09 марта 2014

Я использовал плагин из http://jqueryvalidation.org/ в виде MVC и изменил, как показано ниже:

примечание: используется, когда выпадающий элемент -> значение: 0, текст: - Пожалуйста, выберите -

-> добавить пользовательский требуемый тип

//====find "message {: ..."
messages: {
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",....

//====modify to
messages: {
    noDefaultVal: "This field is required.", //<-- modified
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",....

-> добавить пользовательский требуемый метод

//====and find "methods: {: ..."
methods: {
   // http://docs.jquery.com/Plugins/Validation/Methods/required
   required: function( value, element, param ) {
   // check if dependency is met
   if ( !this.depend(param, element) ) {....

//====modify to
methods: {
    noDefaultVal: function (value, element, param) {
        return this.optional(element) || value != param;
    },
   // http://docs.jquery.com/Plugins/Validation/Methods/required
   required: function( value, element, param ) {
   ....

-> скрипт на странице

$("#frmSave").validate({
  //set required fields
  rules: {
     ITEM_TYPE: {
         required: true ,
         noDefaultVal: "0"
     }
  }
});

Regard.

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