2012-01-24 13 views
0

を検証している私は私のWebコンソールで見ていますものです:フィールドが必要とされてjQueryの検証:必須フィールドが空が、ここでは真の

validationRules.rules.NameOnCard.required //true 

document.OForm.NameOnCard.value //"" 

$("#OForm").validate().element("#NameOnCard") //true 

、それが空であり、そしてそれが有効です。私は間違って何をしていますか?

バックグラウンドのビットとして、フォームに残高が表示されるまで、支払い情報をプログラムで設定しないと、必要なものになります。 if/thenコードを削除すると、正しく検証されます。しかし、私が言うことから、私はそのフィールドが現在必要であることをバリデーターに正しく伝えているので、空のフィールドは偽であると検証する必要がありますか?

+0

あなたは答えに満足している場合は、してくださいそれを '点検する'。これはあなたの質問に対する将来の対応を促すでしょう。ありがとう! – ryankeairns

答えて

0

は、あなたに必要なパラメータは、このような条件を付けることがいる:

NameOnCard: { 
required: function(element){ 
     var fooValue = $('#fooVar').val(); 
     if (isNaN(fooValue)){ 
      return false; 
     } else { 
     if (fooValue > 0) { 
      return true; 
     } else { 
      return false; 
     } 
     } 
} 
} 
+0

これは、ありがとう!しかし、私はこの論理をたくさんの分野に適用したいと思っています。私は試しました:NameOnCard:{required:true、validIfDeposit:true}、\t $ .validator.addMethod( "validIfDeposit"、validationValidIfDeposit、 ""); function validationValidIfDeposit(value、element){ if(isNaN(oForm.thisEvent.deposit.depositAmount)){ falseを返します。 } else { if(oForm.thisEvent.deposit.depositAmount> 0){ がtrueを返します。 } else { falseを返します。 } } }しかし、常にfalseを検証します。最悪の場合、私は各フィールドのコードを再利用します。思考? –

+0

あなたはその関数(要素)を自分自身の関数(関数checkValue()など)に移動し、必要なものごとに関数を呼び出すことができます。require:checkValue() – ryankeairns

+0

ok ... '関数validateIfDeposit(){ if(isNaN(oForm.thisEvent.deposit.depositAmount)){ falseを返します。 } else { if(oForm.thisEvent.deposit.depositAmount> 0){ がtrueを返します。 } else { falseを返します。 } } } ' ' NameOnCard:{必須:validateIfDeposit()}、 'validateIfDeposit()は必要な平均べき、コンソールにtrueを返す:真、まだフォームフィールドが空の場合に無効ではないことを述べています。あなたはまだ機能(要素)...あなたの必要な回線のコールを行う必要があり –

1

フォームがこれを行うことによって有効であるかどうかを確認したいと思う:

if($("#OForm").valid()){ 
// valid 
} 
関連する問題