0

我在下面的错误消息,突出显示的字段工作正常。除了现在需要不同功能的权力。目前,错误消息用红色边框突出显示该字段,并且在焦点上移除边框。但是,现在希望红色突出显示一直持续到用户点击提交的权力onclick="return formSubmit()"

我试过使用 .submit 函数(从 .focus 函数中移除取消绑定和移除焦点,但红色突出显示仍然存在。

<!--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
   });

}
4

2 回答 2

0

我在寻找上面的解决方案时心胸狭窄 - 试图将 removeClass 与表单提交联系起来(它必须绑定许多操作并且会过于复杂)。

相反,我只是在错误检查开始时做了一个删除类:

$("li").removeClass("alertRed");
$("input").removeClass("CO_form_alert");  
$("select").removeClass("CO_form_alert"); 
于 2011-06-29T14:11:13.313 回答
0

不确定我是否理解你。如果不是,请告诉我,但你不能这样做:

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

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

  return false;
});

为什么需要解绑?

于 2011-06-27T20:16:49.360 回答