我在我的网页上使用jQuery Validation插件 当字段首次出现jquery错误时,它显示如下:
<label for="fromDate" generated="true" class="error" style="">This field is required.</label>
当我更正经过验证的错误时,会将以下CSS样式添加到元素中。
display: none
问题是,当我再次使元素出错时,它将CSS样式更改为以下
display: block
如何才能删除CSS样式而不是将其切换为阻止?
答案 0 :(得分:1)
“我如何才能删除CSS样式而不是将其切换为阻止?”
您无法在CSS中取消设置属性。您可以将它们设置为某个默认值。
必须将display属性设置为某个有效值,例如block
并且它不会被继承。这是CSS的常用方法。请参阅:https://developer.mozilla.org/en-US/docs/CSS/display
(也请阅读@ Sparky672评论以了解这里发生的事情)
答案 1 :(得分:1)
由于display:block
是此元素的正常默认状态,因此它在功能上与删除display:none
相同。换句话说,即使你可以做你想做的事,浏览器仍然会将其视为display:block
......没有区别。究竟什么是真正的问题?
要控制错误的位置,请搜索errorPlacement
选项on this page in the documentation。虽然,你可能会有相同的问题,无论它是什么。
这会显示errorPlacement:
选项,默认为function
。
$("#myform").validate({
// options,
errorPlacement: function(error, element) {
error.insertAfter(element); // change this to place error message elsewhere
}
});