2014-09-29 90 views
0

我创建了一个表单,其中包含一个文本框,我希望最终用户可以结束电子邮件地址(并在适用的情况下包含多个电子邮件地址)。验证Adobe PDF表单中的多个电子邮件验证

我有一段代码,工作得很好单个电子邮件:

if (event.value && !eMailValidate(event.value)) { 
app.alert("Incorrect Address Format"); 
    event.rc = false; 
} 

然而,这并不需要超过一个电子邮件,用分号隔开,考虑。任何人都可以阐明如何将其发展为“多个电子邮件验证器”?

谢谢,伙计们。

托尼

回答

0

您可以分析event.value成一个字符串数组,然后验证使用eMailValidate功能阵列中的每个字符串。在这种情况下,您想确保event.value在尝试解析它之前不为null或空,否则您的代码将会中断。这里有一个例子(使用你的代码):

// Make sure event.value is not null or empty 
if(event.value == null | event.value == ""){ 
    app.alert("Incorrect Address Format"); 
    event.rc = false; 
} 

// Split semicolon deliminated values into array 
var emailArray = event.value.split(';'); 

// Get the array length 
var len = emailArray.length; 

// Loop through and validate 
for (i = 0; i < len; i++){ 
    if(!eMailValidate(emailArray[i].trim())){ // Trim removes leading-trailing spaces 
     app.alert("Incorrect Address Format"); 
     event.rc = false; 
    } 
} 

这是jsfiddle,它有一个代码的工作示例。

[注] - 原始示例中的问题是Split中的's'被大写,$ .each循环专用于jQuery,而不是javascript。

希望这是有帮助的:)

+0

嘿! 因此,我写了这个小珍闻...并且好像根本没有验证发生。什么东西冒出来了? if(event.value!= null){varily = event.value.toString(); var emailArray = values.Split(';'); $。每个(emailArray,功能(I,VAL){ 如果(emailValidate(VAL)){ app.alert( “测试”);! event.rc = FALSE;} }); } – tbermeo 2014-09-29 20:59:03

+0

嗨,我刚刚检查过,它明确表示我需要JavaScript,并且即时通讯仍在努力解决这个问题......这是迄今为止我所拥有的。 if(event.value!= null)var values = event.value; var valueInfo = values.toString(); var emailArray = valueInfo.Split(';'); emailArray.forEach(功能(I,VAL){ 如果(eMailValidate(VAL)){ app.alert( “不正确的格式”);! event.rc = FALSE;} }); } – tbermeo 2014-09-30 17:37:26

+0

好的,抱歉的混淆。我会发布一个更新的答案。 – wahwahwah 2014-09-30 19:31:24