场景:
- 将“TxtName”留空并提交;然后,文本框旁边将显示一个红色图像。故意的。
- 在没有 submit的情况下用数据填充文本框,然后红色图像将变为绿色。故意的。
- 清除文本框中的数据,不要提交。然后绿色图像没有变成红色。问题!
这是 jQuery 验证代码:
$(document).ready(function() {
$("#BtnSubmit").click(function() {
$("Form").validate({
rules: {
<%= TxtName.UniqueID %>: { required: true }
},
messages: {
<%= TxtName.UniqueID %>: { required: "Name is required" }
},
success: function(element){
$(element).addClass("checked");
},
errorPlacement: function(error, element) {
var container = $('<div />');
container.addClass('MyTooltip');
error.insertAfter(element);
error.wrap(container);
$("<div class='errorImage'></div>").insertAfter(error);
}
});
});
});
在哪里:
- “errorImage”css 类是显示红色图像的类。
- “checked”css 类是显示绿色图像的类。
- “错误放置”部分仅在文本框旁边显示图像(红色/绿色),当悬停在该图像上时,将显示错误消息的工具提示。
如果您需要查看它,这是 CSS:
div.MyTooltip {
position: relative !important;
display: inline-block;
top: 3px;
right: 0px;
}
div.MyTooltip:hover {
z-index: 1005;
}
div.MyTooltip label {
display: none !important;
vertical-align: middle;
padding: 0px;
line-height: 16px;
font-size: 11px;
}
div.MyTooltip:hover label.error:not(.checked) {
display: inline-block !important;
position: absolute;
right: 0px;
bottom: 24px;
width: 170px;
height: auto;
padding: 0px 5px 0px 5px;
background-color: #ff0000;
border-radius: 5px;
color: white;
opacity: 0.50;
text-align: center;
}
label.error + div.errorImage
{
background: url('Images/error.png') no-repeat 0px 0px;
display: inline-block !important;
width: 20px;
height: 20px;
vertical-align: middle;
}
label.checked + div.errorImage
{
background: url('Images/valid.png') no-repeat 0px 0px;
display: inline-block !important;
width: 22px;
height: 22px;
vertical-align: middle;
}
input.error, select.error {
/*border-width: 1px;*/
border-color: tomato;
}
ASP .NET HTML 是:
<asp:TextBox ID="TxtBranchName" runat="server" ClientIDMode="Static"></asp:TextBox>