2012-06-07 163 views
0

試圖驗證使用jQuery驗證插件的字段。我想檢查當前輸入值是否不等於defaultValue。如果它相等則無效,請清除該值並顯示錯誤消息。jQuery驗證插件,檢查輸入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); 
    } 
};