【问题标题】:jQuery validation errorPlacement - can't remove error once correctedjQuery 验证 errorPlacement - 更正后无法删除错误
【发布时间】:2013-10-17 01:38:27
【问题描述】:

希望你能帮帮我!用户更正错误后,我无法删除错误。例如,验证电子邮件字段。每次按下字符都会根据需要多次附加错误,直到它被验证为止。这是一个sn-p:

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

我想要实现的是错误出现一次。到目前为止我已经成功删除。但是错误会一遍又一遍地自行附加,直到验证成功。

【问题讨论】:

  • 我已经设法使用以下成功将其删除:function(error){ error.remove();但即便如此,每次按下字符时,都会多次弹出错误,直到验证为真。
  • 你能在 jsfiddle 上复制这个吗?

标签: javascript jquery css validation


【解决方案1】:

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

        }
    }
});

【讨论】:

  • @AkiraDawson - 这能回答你的问题吗?
  • 非常感谢!你绝对让我摆脱了泡菜!非常感谢!
【解决方案2】:

去掉你的errorLabelContainer,wrapper,errorContainer,errorPlacement, 和success 选项,改用这个:

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

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

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

【讨论】:

  • 非常感谢!这对我帮助很大!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多