2017-12-01 9 views
0

私はおそらくこれよりも長い間この作業をしようとしていますが、これで数多くのSOスレッドを読み終えても、それはまだわかりません。誰かが私が間違っていることを教えてもらえますか?jquery validation、change rule最小値

私はセットアップに私の debitorderチェックボックスがチェックされている場合は、入力されたテキストボックスの最小値= 1000に設定しますが、 debitorderと私の other checkboxがチェックされ、両方の場合は、最小値があるべき jquery validationでダイナミックなルールをしようとしています

以下は私の最近の試みですが、毎回検証を完全に破るようです。

amount: { 
       required: "#debitorder:checked", 
       number: true, 
       minValue: function() { 
        if ($("#othercheckbox").is(":checked")) { 
         minimum: 500 
        } else { 
         minimum: 1000 
        } 
       } 


      }, 
+0

'$("#othercheckbox ")。hasAttr(" checked ")'で 'if'を試してみてください。 –

+0

@chade_ 'jQuery'は' hasAttr() '関数を持っていません – pmaddi

+1

@pmaddi申し訳ありません、私のせいです。私たちは、その機能を持つcomapnyにカスタムjQuery拡張を持っています。しかし、私は[助けるかもしれない答え](https://stackoverflow.com/a/1318091/4733879) –

答えて

0

ifの条件は適切ですか? そうであれば、あなたはjqueryの検証プラグインを使用すると、2通りの方法でそれを行うことができます使用している場合

amount: { 
 
    required: "#debitorder:checked", 
 
    number: true, 
 
    minValue: function() { 
 
     if ($("#othercheckbox").is(":checked")) { 
 
     return 500; 
 
     } 
 
     else { 
 
     return 1000; 
 
     } 
 
    } 
 
},

+0

、これは正しいパスに私を入れていただきありがとうございます。私は 'return {minimum:500}'を働かせるために次のものを返さなければなりませんでした。 – Mike

0

を試し、1は、検証対象外で、jqueryの検証作業を一緒HTML属性またはHTMLクラスの値は、ファイルの追加メソッドで定義されている正規表現のメソッドを定義するために使用することができますjQueryの検証オブジェクトのクリックチェックボックスやドキュメントの準備ができてから書き出すことができるminlength属性の場合、

   if ($("#othercheckbox").is(":checked")) { 
        $('[name=amount]').attr('minlength',500) 
       } else { 
        $('[name=amount]').attr('minlength',1000) 
       } 

それとも、あなたが使用する必要があり、別の入力値に依存して偽Oに必要な真の場合、値

  minlength: function() { 
       if ($("#othercheckbox").is(":checked")) { 
        return 500 
       } else { 
        return 1000 
       } 
      } 

をこの方法ではなく、のminValueしかしMINLENGTHにjqueryの検証オブジェクトのMINLENGTHの内側にそれを行うと、返すことができますあなたが関数を定義jQueryオブジェクトのうち一例

myinputName: 
     required:{ 
      depends : myDependency 
     } 

ための機能 を依存しそう

 myDependency = function(){ 
      if($("#othercheckbox").is(":checked")){ 
        return true; 
      } 
      else{ 
       return false; 
      } 
     } 

Ciao