0

jquery 検証プラグインを使用してフィールドを検証しようとしています。現在の入力値がdefaultValueと等しくないかどうかを確認したいだけです。等しい場合は無効です。値を消去してエラー メッセージを表示します。

そんな感じ:

...

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

...

残念ながら、それはうまくいきません。

4

2 に答える 2

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);
    }
};
于 2015-09-29T21:21:13.340 に答える
0

わかりました、解決策を見つけました。次のメソッドを作成するだけで問題が解決します。

jQuery.validator.addMethod("defaultInvalid", function(value, element){
    return !(element.value == element.defaultValue);
},jQuery.validator.messages.required);
于 2012-06-08T11:40:22.530 に答える