0

我在我的页面上使用 jQuery Validation 插件当该字段第一次出现 jquery 错误时,它显示如下:

<label for="fromDate" generated="true" class="error" style="">This field is required.</label>

当我更正一个经过验证的错误时,它会将以下 CSS 样式添加到元素中。

display: none

问题是当我让元素再次出现错误时,它会将 CSS 样式更改为以下

display: block

我怎样才能让它只删除 CSS 样式而不是将其切换为阻止?

4

2 回答 2

1

“我怎样才能让它只删除 CSS 样式而不是将其切换为阻止?”

您不能在 CSS 中取消设置属性。您只需将它们设置为某个默认值即可。

display 属性必须设置为某个有效值,例如block,它不会被继承。这是在 CSS 中的常用方法。请参阅:https ://developer.mozilla.org/en-US/docs/CSS/display

(另请阅读@Sparky672 评论以了解此处发生的情况)

于 2012-12-04T16:13:53.703 回答
1

由于display:block是此元素的正常默认状态,因此它在功能上与删除相同display:none。换句话说,即使你可以做你想做的事,浏览器仍然认为它display:block......没有区别。这里真正的问题到底是什么?

要控制错误的位置,请在文档中搜索此页面上的errorPlacement选项。虽然,你可能会遇到同样的问题,不管它是什么。

这显示了errorPlacement:具有默认值的选项function

$("#myform").validate({
    // options,
    errorPlacement: function(error, element) {
       error.insertAfter(element); // change this to place error message elsewhere
    }
});
于 2012-12-04T16:15:31.990 回答