【发布时间】:2011-07-11 13:12:36
【问题描述】:
我正在使用 javascript 表单验证和 jquery 来显示错误消息并突出显示字段。
当前的行为是当您单击提交时,验证运行并返回错误消息,并且当用户单击返回该字段时,错误消息消失但表单突出显示(该字段周围的红色边框)仍然存在 - 直到用户再次提交表单。
需要的其他行为(在 firefox 中工作但在 IE 中不工作)是当错误状态弹出时,返回错误的字段应该失去焦点,并且用户必须单击返回该字段(然后删除错误信息)。在 IE 中,焦点永远不会被移除。
<script language="JavaScript" type="text/javascript">
<!--Jquery function to override JS alert with DOM layer alert message-->
function customAlert(){
var args = arguments;
if(args.length > 1) {
// check that custom alert was called with at least two arguments
var msg = args[0];
$("li").removeClass("alertRed");
$("input").removeClass("CO_form_alert");
$("select").removeClass("CO_form_alert");
var div = $(".errorPopup");
div.css({"display":"block"});
if (div.length == 0) {
div = $("<div class='errorPopup' onclick='$(this).hide();'></div>");
$("body").prepend(div);
}
div.html(msg);
for(var i = 1; i < args.length; i++) {
var inputID = args[i];
$("#"+inputID).addClass("CO_form_alert").parent().addClass("alertRed");
$("#"+inputID).focus(function(){
$(this).unbind('focus'); // remove this handler
$('.errorPopup').hide(); // hide error popup
});
}
}
}
</script>
【问题讨论】:
标签: javascript jquery forms internet-explorer focus