удалить класс с помощью formSubmit - PullRequest
0 голосов
/ 28 июня 2011

мое сообщение об ошибке ниже, с выделенным полем работает отлично. За исключением того, что теперь силы хотят другой функциональности. В настоящее время сообщение об ошибке выделяет поле красной рамкой, а при фокусировке граница удаляется. Тем не менее, теперь полномочия, которые требуют, чтобы красная подсветка сохранялась до тех пор, пока пользователь не нажмет, отправляют 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
   });

}

Ответы [ 2 ]

0 голосов
/ 29 июня 2011

Я был так ограничен, когда искал решение выше - пытался связать removeClass с формой отправки (которая была связана со многими действиями и была бы слишком сложной).

Вместо этого я просто удалил класс в начале проверки на ошибку:

$("li").removeClass("alertRed");
$("input").removeClass("CO_form_alert");  
$("select").removeClass("CO_form_alert"); 
0 голосов
/ 28 июня 2011

Не уверен, что понимаю вас. Если нет, пожалуйста, скажите мне, но вы не можете просто сделать:

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

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

  return false;
});

Зачем вам нужно отвязать?

...