2012-06-07 5 views
0

Попытка проверки поля с помощью плагина jquery validate. Все, что я хочу проверить, не соответствует ли текущее входное значение defaultValue. Если он равен, то он недействителен, очистите значение и покажите сообщение об ошибке.jQuery validate plugin, check input defaultValue

Нечто подобное:

... 

firstname:{ 
    required: function(element){      
    return element.val() !== element.defaultValue; 
    element.val(''); 
    }           
} 

... 

К сожалению, это не работает.

+0

почему он не работает? что происходит? есть ли сообщение об ошибке? какой id element.defaultValue? где он устанавливается? – Gavriel

ответ

0

Хорошо, нашел решение. Проблема заключается в создании следующего метода.

jQuery.validator.addMethod("defaultInvalid", function(value, element){ 
    return !(element.value == element.defaultValue); 
},jQuery.validator.messages.required); 
0

Вот реализация, которая работает для радио-кнопок, а также:

var isChanged = function ($element) { 
    switch ($element.attr('type')) { 
     case "radio": 
      var $formElementsWithSameName = $element.closest('form').find(':input').filter(function() { 
       return $(this).attr('name') == $element.attr('name'); 
      }); 
      return $formElementsWithSameName.filter(':checked').filter(function() { 
       return $(this).prop('defaultChecked'); 
      }).length == 0; 

     case "text": 
      return $element.val() != $element.prop('defaultValue'); 
     default: 
      console.error("No implementation of isChanged for element " + $element); 
    } 
}; 
Смежные вопросы