jQuery 验证错误放置 - 更正后无法删除错误

jQuery validation errorPlacement - can't remove error once corrected

本文关键字:错误 删除 验证 jQuery      更新时间:2023-09-26

希望你能帮到我!用户更正错误后,我在删除错误时遇到问题。例如,验证电子邮件字段。每次字符按下都会根据需要多次附加错误,直到验证为止。下面是一个片段:

$( "#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.So 我已成功删除为止。 但是错误会一遍又一遍地附加自己,直到验证成功。

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

去掉你的errorLabelContainerwrappererrorContainererrorPlacementsuccess选项,改用这个:

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

您拥有的东西基本上复制(很差)验证插件默认的功能。

在这里看到它的工作原理:http://jsfiddle.net/hGNRG/1/(给@wiz孩子创建小提琴的帽子提示)。