jQuery验证错误消息显示它何时不应该

时间:2015-05-21 12:08:27

标签: jquery jquery-validate

我有一个带有两个单选按钮和一个提交按钮的简单表单。

如果未选中任何无线电,则单击提交时会出现错误。正如它应该。然后单击单选按钮会使错误消失。

问题:错误消失后,如果单击其他单选按钮,则会再次显示错误。同样,当我单击提交按钮时,它会短暂显示。这是为什么?

Here's a fiddle showing the issue

以下是代码:

<form>
  <input type="radio" name="options" class="radioB">
  <input type="radio" name="options" class="radioB">
  <input type="submit" value="submit" class="submit">
</form>
<div id="error--holder"></div>

$("form").validate({
    rules: {
        options: {
            required: true
        }
    },
    messages: {
        options: "Whoops! Please indicate who.",
    },
    errorPlacement: function(error, element) {
        $('#error--holder').html(error.text()+' <a href=#>Go fix it...</a>').fadeIn();
    },
    success: function(error) {
        $('#error--holder').fadeOut();
    },
    submitHandler: function (form) {
        return false; // stop
    }
});

1 个答案:

答案 0 :(得分:1)

你可以应用技巧,如果元素中有错误文本,那么fadeIn()错误信息,请看下面的示例代码

errorPlacement: function(error, element) {
      if(error.text())
        $('#error--holder').html(error.text()+' <a href=#>Go fix it...</a>').fadeIn();
}

DEMO