1

フィールドの 1 つが変更されたときにフィールドを再検証する際に問題が発生しています。より具体的には、任意の数のフィールド (ユーザーはニュースを追加したり、既存のニュースを削除したりできます) を処理する必要があり、合計が 100 を超えることはできないとします。

私が今していることは次のとおりです。

//This basically works on change of the input
$.validator.addMethod('inputBox', checkAmount, 'Value exceeds maximum quantity');

function checkAmount(value, element) {

    if (sumAmounts() <= 100) {
        return true;
    }
    return false;
}

2 つの inputBox があるとします: - 1 つ目に 80 を入力 - 2 つ目に 30 を入力 - 2 つ目が赤くなり、「値が最大数量を超えています」というエラーが表示されます <-自分!- [送信] を押します。どちらも赤くなり、エラーが表示されます <- 私にとっては問題ありません! - 検証ルールに合わせて 2 つのうちの 1 つを編集します (どちらでも構いません)。

ボックスの 1 つを変更し、それらの値の合計が 100 未満になると、すべてのボックスが「有効」になるようにします。

true または false を返す前に、checkAmount() 関数に次のメソッドを挿入しようとしました: $('inputBox').validate() / .valid(); / 。変化する(); / $('フォーム').validate(); / さらに $('inputBox').focus(); これは機能しますが、無限ループを通過します xD

なにか提案を?

4

2 に答える 2

1

問題を提示するのは現在のボックスではなく、同じ検証ルールを持つ他のボックスであるため、機能しません

于 2012-09-12T12:09:09.277 に答える
0

各入力ボックス要素に「inputclass」と言うcssクラスを追加し、次のjQueryスクリプトを適用できます。それがうまくいくかもしれません..

$(function(){
    $(".inputclass").change(function(){
          $(this).validate();
     });
});
于 2012-09-12T10:57:04.830 に答える