Выделите несколько входных идентификаторов при проверке JavaScript - PullRequest
0 голосов
/ 05 июля 2011

с использованием проверки JavaScript и некоторого jquery для отображения сообщений об ошибках переменных в DOM, а также выделения метки формы и поля.

Для этого конкретного сообщения об ошибке мне нужно выделить 2 поля (email1 и email2). Не знаете, как добавить его в мои текущие настройки для предупреждений ниже:

customAlert ("email2",bnadd_msg_022);

простой вопрос, как мне добавить email1 в микс?

Edit:

Вот моя функция jquery:

function customAlert(inputID,msg){

      $("li").removeClass("alertRed");
      $("input").removeClass("CO_form_alert");  
      $("select").removeClass("CO_form_alert");   
      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
        $('.errorPopup').hide(); // hide error popup
   });

Итак, в этом и другом случае мне нужно выделить 2 поля одновременно

Ответы [ 2 ]

1 голос
/ 05 июля 2011

Я бы использовал аргументы 'array' в Javascript и просто определил customAlert как функцию без аргументов.

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

Затем вы вызываете его так:

customAlert(bnadd_msg_022,"email2"); // note the order of the arguments has changed
customAlert(bnadd_msg_022,"email1","email2");
0 голосов
/ 05 июля 2011

Не видя код, я предполагаю, что вы можете изменить функцию customAlert, чтобы получить необязательный третий аргумент.

Я бы сделал так, чтобы третий аргумент был массивом, который может принимать n чисел идентификаторов полей. В функции customAlert я бы проверил, передан ли аргумент, и если это так, переберите массив и выделите любой идентификатор, включенный в него.

...