2014-09-29 94 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