2009-10-01 62 views
0

嗨這是一個簡單的問題,我猜: 我的要求是在用戶輸入郵件時,在文本框中,域名應該被自動添加。輸入的名稱不應該允許特殊除''之外的字符。 '_' 事實上。另外,用戶不應該被允許添加,除了這是在財產文件。這個規定是在JavaScript如何將EMAIL域名自動附加到輸入字段

+0

javascript必須不是您驗證的唯一方法。確保你也做了服務器端驗證。 – 2009-10-01 04:09:40

回答

2

爲什麼就不能顯示任何其他域

| _____________ | @ yourdomain.com

並且在提交(onsubmit事件)時或在服務器端進行附加操作?

例如

function email_form_submit(event) 
{ 
    event = event || window.event; 

    if (event.preventDefault) 
     event.preventDefault(); 

    if (event.stopPropagation) 
     event.stopPropagation(); 
    else 
     event.cancelBubble = true; 

    var form = document.getElementByID('your form id'); 
    var element = document.getElementByID('your email form element id'); 
    element.value = element.value + "yourdomain.com"; 

    form.submit(); 

    return false; 
} 

http://msdn.microsoft.com/en-us/library/ms536972%28VS.85%29.aspx

編輯
快速驗證正則表達式。注:未測試

function validate_email_address(event) 
{ 
    event = event || window.event; 

    var regex = /^[a-zA-Z0-9._][email protected]\.com$/; 

    var element = document.getElementByID('your email form element id'); 
    element.value = element.value + "yourdomain.com"; 

    if (!regex.test(element.value)) 
    { 
     alert("Invalid Email"); 
     if (event.preventDefault) 
      event.preventDefault(); 
     return false; 
    } 

} 

編輯:固定的語法錯誤

+0

這樣做的好方法。 +1 – rahul 2009-10-01 04:11:25

+0

actully我期待一個正則表達式種類 – GustyWind 2009-10-01 04:21:16

+0

有許多電子郵件正則表達式,大多數都是不正確的。由於您似乎對電子郵件有特定的限制,因此我會使用正則表達式添加快速驗證功能,但Soviut建議您使用驗證庫,這可能是您想要去的地方 – 2009-10-01 04:24:43

0

我強烈建議使用現有的JavaScript表單驗證庫來處理在外地合法字符。 JQuery有幾個validation plugins,並快速谷歌搜索「JavaScript驗證庫」產生this library

但是,對於域,我不會允許您的字段中的任何域名,並在服務器端追加域名。這會讓事情變得更容易,因爲要確保它們不在域中包含域名,只需在字段驗證規則中使@符號成爲非法字符之一即可。

+0

對不起,我沒有選擇使用JQUERY但我知道它有很多功能 – GustyWind 2009-10-01 04:20:29

相關問題