jQuery 验证错误消息在不应该显示的时候显示

jQuery validation error message shows when it shouldn't

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

如果选中 none 个无线电,则在单击提交时会导致错误。正如它应该。然后单击单选按钮会使错误消失。

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

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
    }
});

您可以应用技巧,如果元素中有错误文本,则 fadeIn() 错误消息,请参见下面的示例代码

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

DEMO