使用 formSubmit 删除类

发布于 2024-11-17 13:14:23 字数 918 浏览 4 评论 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
   });

}

my error message below, with a highlighted field is working perfectly. Except now the powers that be want a different functionality.
Currently the error messaging highlights the field with a red border, and on focus the border is removed. However, now the powers that be want the red highlighting to persist until the user hits submit onclick="return formSubmit()"

I've tried using a .submit function (removing the unbind and remove focus from the .focus function, but the red highlighting persists regardless.

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

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

深陷 2024-11-24 13:14:23

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

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

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

  return false;
});

为什么需要解绑?

Not sure I understand you. If not please tell me, but can't you just do:

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

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

  return false;
});

Why do you need to unbind?

甩你一脸翔 2024-11-24 13:14:23

在寻找上述解决方案时,我的思想非常狭隘 - 试图将removeClass与表单提交联系起来(这必须与许多操作相关联,并且会过于复杂)。

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

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

I was so narrow minded in my looking for a solution above - trying to tie the removeClass with the form submit (which had to many actions tied into it and would have been overly complicated).

Instead, I just did a remove class at the beginning of the error checking:

$("li").removeClass("alertRed");
$("input").removeClass("CO_form_alert");  
$("select").removeClass("CO_form_alert"); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文