0

私は jQuery Validate プラグインを使用しており、やろうとしていることは比較的簡単なはずですが、機能させることができません。

input必須/必須フィールドではないフィールドがあります。フィールドに何も入力されていない場合、フィールドで何らかの形式の検証を実行したくありません。フォームフィールドが変更され、検証したい入力が含まれている場合、たとえば数字のみですが、フィールドが空白の場合は、削除/検証しないでください。

私はこのようなことをしてみました:

valForm('excessFrm');

var vou = $('input[name="voucher"]');

vou.blur(function(){
  if($(this).val() == ''){
    ( "#voucher" ).rules( "remove" );
  } else {
    ( "#voucher" ).rules( "add", {
        number: true
    });
  }
})

しかし、これをコードのどこに置いても、次のエラーが発生します。

Uncaught TypeError: Object #voucher has no method 'rules' 

validate()オブジェクトが開始されたことは確かですが、valForm()関数は検証オブジェクトを呼び出し、すべてのデフォルト ルールなどを設定します。

誰か知恵の言葉を教えてください。

4

2 に答える 2

4

引用OP:

必須/必須フィールドではない入力フィールドがあります。フィールドに何も入力されていない場合、フィールドで何らかの形式の検証を実行したくありません。フォームフィールドが変更され、検証したい入力が含まれている場合、たとえば数字のみですが、フィールドが空白の場合は、削除/検証しないでください。

jQuery Validate プラグインを含む、フォーム検証ソフトウェアの予想される通常の動作について説明しました。

プラグインは、デフォルトで有効になっているオプションblurによってトリガーされる検証を実行するため、カスタム イベント ハンドラーは必要ありません。onfocusout

rules()デフォルトでは、プラグインは空のフィールドでルールを評価しないため、メソッドを使用してルールを追加および削除する必要はありません。(もちろん、唯一の例外はrequired規則であり、定義上、空のフィールドにのみ適用されます。 )

コードを削除して、このようなものからやり直してください...

HTML :

<form id="myform">  
     <input type="text" name="voucher" />
     <input type="submit" />
</form> 

jQuery :

$(document).ready(function() {

    $('#myform').validate({
        rules: {
            voucher: {
                number: true
            }
        }
    });

});

動作デモ: http://jsfiddle.net/HBfJB/

デモでわかるように、フィールドを空白のままにすると送信が許可されますが、文字が入力されると検証ルールが評価されます。

于 2013-07-31T14:40:53.247 に答える