0

以下のようなカスタムエラーメッセージでフォームを検証したかった

<input type="text" name="numberdigit" class="numberClass" placeholder="Number Digit" data-constraints='@Required(message = "Number Digit is required.")' />
<input type="text" name="numberdigit" class="numberClass" placeholder="Number Digit" data-constraints='@Required(message = "Number Digit is required.")' />
<select class="something" name="action" data-constraints='@Required(message = "Please select text1 or text2.")'> <option>text / text2</option> <option value="0">text 1</option> <option value="1">text 2 </option> </select>

`$('form', $parent).submit(function () {
            var validationResults = regula.validate(),
                html = '',
                hasErrors = validationResults.length > 0,
                i;

            if (hasErrors === true) { // fail path


                // iterate over errors
                for(var i = 0; i < validationResults.length; i++) {
// append and show errors
$(".alert-error"+i).append(validationResults[i].message);

                     $(".alert-error"+i).show();
                }



            } else{
//success path

  }`

送信時にエラーが表示されますが、カスタマイズされた div で入力フィールドの下にエラーを表示する必要があります <div class="alert-error0"> Number Digit is required </div>

ループが閉じられない方法と、エラー数が増加し続けるたびに、問題を解決するのを手伝ってください。エラーが表示される場合は、入力フィールドのクラスも追加する必要があります。エラーフィールドにいくつかの値を入力したら、エラークラスを削除する必要があります

4

1 に答える 1

1

毎回新しい要素を追加し続けます。次の内容を変更するだけで済みますdiv

したがって、代わりに:

$(".alert-error"+i).append(validationResults[i].message);

必要なもの:

$(".alert-error" + i).text(validationResults[i].message);

成功パスでは、各エラーの内容をクリアするだけですdiv

$(".alert_error").empty();
于 2014-01-01T07:44:45.570 に答える