关于一个样式问题。
在style中有如下样式
<style type="text/css">
<!--自定义样式-->
em.error { background: url(../../assets/plugins/jquery-validation/demo/images/unchecked.gif) no-repeat 0px 0px; padding-left: 16px; color: red; }
em.success { background: url(../../assets/plugins/jquery-validation/demo/images/checked.gif) no-repeat 0px 0px; padding-left: 16px; }
</style>
然后在js中加入如下代码
errorElement: "em",
success: function(label){
//label指向错误提示信息标签em
label.text(" ").addClass("success");
} 这样就会在错误的时候有一个红色叉叉,正确的时候变成一个勾的图标。但是出现了一个问题就是假设输入正确之后做了一个修改又错误了,会显示出错的信息,但图标没有变。调试的时候发现是.success和.error都在,后面的样式覆盖了前面的。假如把两个样式的位置更换,就会出现在验证成功时右边出现一个叉叉图片这样的问题。
请问这样的问题可以怎样解决呢?
在style中有如下样式
<style type="text/css">
<!--自定义样式-->
em.error { background: url(../../assets/plugins/jquery-validation/demo/images/unchecked.gif) no-repeat 0px 0px; padding-left: 16px; color: red; }
em.success { background: url(../../assets/plugins/jquery-validation/demo/images/checked.gif) no-repeat 0px 0px; padding-left: 16px; }
</style>
然后在js中加入如下代码
errorElement: "em",
success: function(label){
//label指向错误提示信息标签em
label.text(" ").addClass("success");
} 这样就会在错误的时候有一个红色叉叉,正确的时候变成一个勾的图标。但是出现了一个问题就是假设输入正确之后做了一个修改又错误了,会显示出错的信息,但图标没有变。调试的时候发现是.success和.error都在,后面的样式覆盖了前面的。假如把两个样式的位置更换,就会出现在验证成功时右边出现一个叉叉图片这样的问题。
请问这样的问题可以怎样解决呢?
在這個之前先把樣式去掉
从validate插件本身的defaults函数里找到的关键字有这些:
messages
groups:
rules:
errorClass:
validClass:
errorElement:
focusInvalid:
errorContainer:
errorLabelContainer:
onsubmit:
ignore:
ignoreTitle:
onfocusin:
onfocusout:
onclick:
highlight:
unhighlight: 没有找到success相关的任何数据,故而也没有找到验证成功后再发生错误会怎样。
是不是这个插件本身根本不考虑这个问题只考虑验证成功啊?
//label指向错误提示信息标签em
label.text().addClass("error");
}
这是我后来参照success加上去的。但是调试的时候发现这段话没有起作用,加不加一样。我觉得是关键字不对,把error改成了errors但还是不对
jQuery.validator.setDefaults({
highlight: function(element, errorClass) {
var $element = $(element);
// Add the red outline.
$element.parent().addClass(errorClass);
// Add the red cross.
$element.siblings(".error_status").addClass("check");
},
unhighlight: function(element, errorClass) {
var $element = $(element);
// Remove the red cross.
$element.siblings(".error_status").removeClass("check");
// Remove the red outline.
$element.parent().removeClass(errorClass);
}
});