2016-10-29 13 views
0

私はユニットと価格の両方でQuanitityを指定しているこの問題に遭遇しました。単位が与えられれば、価格も供給されなければならず、価格が与えられる場合、単位も供給されなければならない。しかし、彼らはどちらも空白です、それは大丈夫です。jQueryの検証次の前の値に基づいて

+----------+-------+ 
| Quantity | Units | 
+----------+-------+ 
|   |  | 
+----------+-------+ 

私はこの状態を確認するために次のコードを使用しました。クラスの最初のインスタンスでは動作しますが、進行するインスタンスでは機能しません。

$(".Quantity").rules("add",{ 
     required:function(element){ 
     return $(".Quantity").next('input').val() > 0; 

    }, 
}); 

$(".Units").rules("add",{ 
     required:function(element){ 
     return $(".Units").prev('input').val() > 0; 

    }, 
}); 

したがって、基本的には発生の最初の値のみをチェックし、残りはチェックしません。私が望むのは、完全なページに行き、各出現の前の次の値を比較することです。私の場合は、データがテーブルに整理され、各セルには前と次の値で取得したい数量と価格の入力ボックスが含まれています。それは動作していません。

Here is codepen demo。クラスターの最初のインスタンスで停止し、クラスベースのルールを使用しているため、すべてのエラーを表示しないように、エラーの総数を表示する例でもブートストラップダイアログを使用しています。どんな助けもありがとう。複数の要素をターゲットとセレクタを使用しているときに使用していないときに、このプラグインの方法では

答えて

0

自分で回答してください。私は

$('.Units').each(function() { 
    $(this).rules("add", { 
     onkeyup: false, 
     required: function (element) { 
      return element.nextElementSibling.nextElementSibling.value > 0 ? true : false; 
     }, 
    }) 
}); 

$('.Cost').each(function() { 
    $(this).rules("add", { 
     required: function (element) { 
      return element.previousElementSibling.previousElementSibling.value > 0 ? true : false; 
     }, 
    }) 
}); 

私の問題を修正するには、次のコードを使用していた前と次の値が相互に依存していたところ、私が使用される実際のコードはより複雑です。

+0

、実際のonkeyupはルールではないので、' .rules() 'メソッドの中で使うことはできません。 – Sparky

1

、あなた、そうでなければ... jQueryの.each()

$(".Quantity").each(function() { 
    $(this).rules("add",{ 
     required: function(element) { 
      return $(".Quantity").next('input').val() > 0; 
     }, 
    }); 
}); 

の方法を囲む必要がありますeach()では、最初に一致する要素のみが考慮されます。

+0

これは正しい方法ですが、自分のコードに '
'要素があるため、私のケースではうまくいきませんでした。 –

+0

@hmd - あなたがどこに間違っていたかを正確に示し、 'br'要素はこれとは何の関係もないでしょう。 – Sparky

+0

どういうわけか、私は上記の構文で希望の結果を得ていませんでした。私は、私の解決策をすでに考え出したので、あなたの答えを試したことはありません。私は別の何かを間違ってやっているかもしれません。この作品があれば試してみましょう。私が前に指摘したように、あなたのアプローチは正しいです。私は 'previousElementSibling'または'
'要素を使って論理を破壊する必要がありました:( –

関連する問題