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

去掉你的errorLabelContainer, wrapper, errorContainer, errorPlacement, 和success选项,把它改成:

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

您所拥有的东西基本上是(很差地)复制了 Validation 插件默认执行的操作。

在此处查看它的工作原理:http: //jsfiddle.net/hGNRG/1/(向@wiz-kid 致敬以创建小提琴)。

于 2013-10-17T16:32:45.163 回答