我正在尝试使用jQuery validate插件动态验证我的表单字段,当发现错误时我想显示一个红色的“交叉”图像,否则如果它已经通过验证显示绿色'tick'图像。
我已经到了一半 - 绿色勾号显示条目已通过验证,但是我无法显示红十字图像。我知道我需要以某种方式使用errorPlacement函数才能使其正常工作。
目前它显示绿色标记正常 - 我只是想尝试获得相同的效果,但错误时出现红叉。
这是迄今为止的代码..我已经将它添加到jsfiddle,如果它更容易在那里查看 http://jsfiddle.net/BLDXC/3/
$('#checkout-form').validate({
rules: {
first_name: {
minlength: 2,
required: true
},
last_name: {
minlength: 2,
required: true
},
terms: {
required: true,
}
},
highlight: function (element) {
$(element).addClass('#nonvalid')
.closest('.form-group').removeClass('valid');
},
success: function (element) {
element.addClass('valid')
.closest('.form-group').removeClass('error');
}
});
<style type="text/css">
label.valid {
position: relative;
top: -25px;
right: 10px;
float: right;
width: 16px;
height: 16px;
background: url('/assets/images/icons/tick.png') center center no-repeat;
display: inline-block;
text-indent: -9999px;
}
label.nonvalid {
position: relative;
top: -25px;
right: 10px;
float: right;
width: 16px;
height: 16px;
background: url('/assets/images/icons/cross.png') center center no-repeat;
display: inline-block;
text-indent: -9999px;
}
</style>
答案 0 :(得分:4)
您需要使用unhighlight
回调函数和highlight
,因为它们是互补功能。当出现错误消息时,highlight
将会触发。当应该清除错误消息时,unhighlight
将会触发。
这样的东西可用于正确切换属于CSS的图像...
概念证明:http://jsfiddle.net/BwqWh/
highlight: function (element) {
$(element).addClass('error').removeClass('valid')
.closest('.form-group').addClass('error').removeClass('valid');
},
unhighlight: function (element) {
$(element).addClass('valid').removeClass('error')
.closest('.form-group').addClass('valid').removeClass('error');
}