在javascript验证时突出显示多个输入ID

时间:2011-07-05 15:15:42

标签: javascript jquery forms validation

使用javascript验证和一些jquery在DOM中显示变量错误消息,并突出显示表单标签和字段。

对于此特定错误消息,我需要突出显示2个字段(email1和email2)。 不确定如何将其添加到以下警报的当前设置中:

customAlert ("email2",bnadd_msg_022);

简单的问题,如何将email1添加到混音中?

编辑:

这是我的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 个答案:

答案 0 :(得分:1)

我会在Javascript中使用参数'array',只需将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");

答案 1 :(得分:0)

如果没有看到代码,我的猜测是您可以更改customAlert函数以获取可选的第三个参数。

我这样做的方法是使第三个参数成为一个可以接受n个字段id的数组。在customAlert函数中,我将检查参数是否被传递,如果是,则循环遍历数组并突出显示其中包含的任何id。