2011-06-27 23 views
0

我的错误消息下面,突出显示的字段是完美工作。除了现在需要不同功能的能力之外。 目前,错误消息传递会突出显示带有红色边框的字段,并在焦点上移除边框。然而,现在需要红色突出显示的权力持续到用户提交onclick="return formSubmit()"删除类与formSubmit

我试过使用.submit函数。不管

<!--Jquery function to override JS alert with DOM layer alert message--> 
function customAlert(inputID,msg){ 
    var div = $(".errorPopup"); 
    div.css({"display":"block"}); 
    $("#"+inputID).addClass("CO_form_alert").parent().addClass("alertRed"); 
    if (div.length == 0) { 
    div = $("<div class='errorPopup' onclick='$(this).hide();'></div>"); 
    $("body").prepend(div); 
    } 
    div.html(msg); 
    $("#"+inputID).focus(function(){ 
     $(this).unbind('focus'); // remove this handler 
     $(this).removeClass("CO_form_alert") 
       .parent().removeClass("alertRed"); // undo changes 
     $('.errorPopup').hide(); // hide error popup 
    }); 

} 
+0

为什么你不只是删除整个焦点绑定。 – Prusse

回答

0

我在寻找上述解决方案时非常狭隘 - 试图将removeClass与表单提交(必须绑定很多动作并且过于复杂)绑定。

相反,我只是做了删除类的错误检查的开头:

$("li").removeClass("alertRed"); 
$("input").removeClass("CO_form_alert"); 
$("select").removeClass("CO_form_alert"); 
0

不知道我理解你如果不是,请告诉我,但你不能只是做:?

$('.theform').submit(function() { 

    $('input', this).removeClass('CO_form_alert').parent().removeClass('alertRed'); 
    $('.errorPopup').hide();  

    return false; 
}); 

为什么你需要取消绑定

+0

不幸的是,上述不起作用。弹出窗口不隐藏,并且alertRed类正在持续 – Jason

+0

您可以发布相关的HTML吗? – PeeHaa