jQuery验证errorPlacement - 修正后无法删除错误

时间:2013-10-17 01:38:28

标签: javascript jquery css validation

希望你能帮助我!一旦用户纠正了错误,我就无法删除错误。例如,验证电子邮件字段。每个字符按下都会根据需要多次添加错误,直到验证为止。这是一个片段:

$( "#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>

我想要实现的是错误出现在ONCE。到目前为止,我已成功删除。但是错误会一直反复追加,直到验证成功为止。

2 个答案:

答案 0 :(得分:9)

试试这个: - 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();
            }

        }
    }
});

答案 1 :(得分:1)

摆脱您的errorLabelContainerwrappererrorContainererrorPlacementsuccess选项并将其改为:

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

你所拥有的东西基本上是复制(很差)默认情况下Validation插件的功能。

看到它在这里工作:http://jsfiddle.net/hGNRG/1/(提示@ wiz-kid创建小提琴)。