1

あなたが私を助けてくれることを願っています!ユーザーがエラーを修正した後、エラーを削除するのに問題があります。たとえば、電子メール フィールドの検証です。文字を押すたびに、検証されるまで必要な回数だけエラーを追加し続けます。ここにスニペットがあります:

$( "#bookings" ).validate({
      rules: {
        email: {
          required: true,
          email: true
        },
      message: {
        email: {
          required: "field is required",
          email: "invalid email"
        },
      errorLabelContainer: $("ul", $('div#results')), wrapper: 'li',

        errorContainer: $('div#results'),

        errorPlacement: function(error, element) {
            $('#results').append(error);
        }
      success: function(error){ 
          error.remove(); 
      }

});



<div id="results">

</div>
<form name="bookings" id="bookings" method="post" action="#">
    <div class="item" style="clear:left;">
        <label>E Mail *</label>
        <input id="femail" name="email" type="text">
    </div>
</form>

私が達成したいのは、エラーが一度表示されることです。これまでのところ、削除に成功しています。ただし、検証が成功するまで、エラーは何度も何度も追加され続けます。

4

2 に答える 2

10

これを試してみてください:- http://jsfiddle.net/adiioo7/hGNRG/

JS:-

$("#bookings").validate({
    rules: {
        email: {
            required: true,
            email: true
        },
        message: {
            email: {
                required: "field is required",
                email: "invalid email"
            },
            errorLabelContainer: $("ul", $('div#results')), wrapper: 'li',
            errorContainer: $('div#results'),

            errorPlacement: function (error, element) {
                $('#results').append(error);
            },
            success: function (error) {
                error.remove();
            }

        }
    }
});
于 2013-10-17T03:35:12.860 に答える
1

、、、、およびオプションを取り除き、代わりにこれを入れますerrorLabelContainerwrappererrorContainererrorPlacementsuccess

  wrapper: 'li',
  errorLabelContainer:$('#results')

あなたが持っていたものは、基本的に検証プラグインがデフォルトで行うことを(不十分に)複製しています。

http://jsfiddle.net/hGNRG/1/ (フィドルを作成するための @wiz-kid への帽子のヒント)で動作することを確認してください。

于 2013-10-17T16:32:45.163 に答える