2011-03-28 102 views
1

我想验证一个电子邮件地址,然后添加到多选框。我正在使用qTip和jquery验证来做伎俩。所以当点击添加按钮时,脚本应该验证并添加到下面的选择框中。验证工作正常,但添加我面临添加方法主qTip脚本有点困难。谁能帮我在整合之下jquery验证,添加,删除电子邮件地址

这里是demo

添加脚本

$(document).ready(function() { 
$("#addButton").click(function() { 
    var arr = new Array(); 
    $('#emailRecipients option').each(function(){ 
     arr.push($(this).attr('value')) 
    }); 
    var duplicateFlag = false; 
    for(var i = 0; i < arr.length; i++) { 
     if(arr[i].toString() == $('#validate').val()) { 
      duplicateFlag = true; 
      break; 
     } 
    } 

    if(duplicateFlag) { 
     alert('sorry...'); 
    } else { 
     $('#emailRecipients').append($("<option>" + $('#validate').val() + "</option>")); 
    } 
    return false; 
}); 
    }); 

回答

0

既然你用字符串比较,你可以在下面收紧你的代码验证。另外,您需要将您的.append()方法中的jquery更改为原始HTML,并将该电子邮件地址添加到选项值中。

$(document).ready(function(){ 

    $("#addButton").click(function(){ 
     var emails = []; 
     $("#emailRecipients option").each(function(){ 
      emails.push($(this).val()); 
     }); 

     if($.inArray($('#validate').val(), emails) != -1){ 
      alert("sorry..."); 
     }else{ 
      $('#emailRecipients').append("<option value='" + $('#validate').val() + "'>" + $('#validate').val() + "</option>"); 
     } 
    }); 

}); 
+0

我想添加这个逻辑qTip脚本,其中我验证并显示错误消息onMouseover。这里是[demo](http://jsfiddle.net/pixelfx/u38Q5/) – Ravi 2011-03-28 12:54:34

+0

@Ravi:反过来你可能没有那么麻烦。也就是说,如果他们输入已输入的电子邮件地址,则应该验证()并为文本字段创建一个qTip,而不是将逻辑合并到组件中,例如将以上代码添加到.validate()。 (例如,不要提醒“抱歉...”,为文本字段创建qTip,让他们知道他们已经输入了电子邮件地址) – 2011-03-28 13:01:53