4

フォームにカスタム検証メソッドを追加した場合、送信する前にフォームをトリガーするにはどうすればよいですか?

フォームフィールドを装飾していませんが、ルールセクションに新しいメソッドを追加するとメソッドがトリガーされると思いましたが、機能しません。

$.validator.addMethod('myCustomValidation', function (data)
{
   // do some work here 
   return myValidationResult;

}, 'Please respond.');


$("#myFormId").validate({        
    rules: {
         "myCustomValidation": {required: true}
    },
    messages: {
       "myCustomValidation": {
           required: "Enter some information before proceeding",        
        }
    },
    submitHandler: function(form)
    {
        // do the work to submit this form
    }
});

「送信」ボタンが押されたときに検証がトリガーされるようにしたいと思います。

ただし、送信ボタン以外のフォームフィールドに検証クラス名を追加すると、このルールがトリガーされます。送信する直前にトリガーされるようには見えません。

4

6 に答える 6

1

私はこの機能を使用していませんaddMethodが、これを提案できます:

$.validator.methods.myCustomValidation = function(value, element, param) {
    // Perform custom validation and return true or false
    return value === '' || /^([0-9]{10})$/.test(value);
};


$("#myFormId").validate({        
    rules: {
        myElement: { 
            myCustomValidation: true 
        }
    },
    messages: {
        myElement: { 
            myCustomValidation: "Enter some information before proceeding" 
        }
    },
    submitHandler: function(form)
    {
        // do the work to submit this form
    }
});
于 2009-11-18T18:15:59.363 に答える
0

コードを次のようにラップします。

$(function(){
   //your code goes here
});

これにより、ページの読み込み時に検証イベントが添付されます。

于 2009-11-18T18:11:42.150 に答える
0

私はあなたがaddClassRulesを探していると思います

$.validator.addMethod('myCustomValidation', function (data)
{
   // do some work here 
   return myValidationResult;

}, 'Please respond.');

$.validator.addClassRules({
  myCustomValidation: { myCustomValidation: true, required: true }
});

$("#myFormId").validate({        
    messages: {
       "myCustomValidation": {
           required: "Enter some information before proceeding",        
        }
    },
    submitHandler: function(form)
    {
        // do the work to submit this form
    }
});
于 2010-02-16T01:51:34.917 に答える
0

あなたは何かが欠けています。ルールは次のようになります。

rules: {
    "elemId": {
        required: true,
        myCustomValidation: true
     }
},
于 2009-11-18T18:17:10.610 に答える
0

.valid()検証をトリガーする呼び出し:

$("#myFormId").valid();
于 2009-11-18T18:30:55.980 に答える