2012-11-29 80 views
1

我有一個驗證函數的問題,我只在一個函數中做了它,我想添加電子郵件的驗證,例如@和數字1-9。我如何添加它?表單驗證 - 電子郵件/電話號碼

HTML:

<form onsubmit="return validate();" name="formValidation"> 
    <label>First Name:</label> 
    <input type="text" name="firstName" /><br /><br /> 
    <label>Last Name:</label> 
    <input type="text" name="lastName" /><br /><br /> 
    <label>E_mail:</label> 
    <input type="text" name="Email" /><br /><br /> 
    <label>Confirm E_mail:</label> 
    <input type="text" name="confirmEmail" /><br /><br /> 
    <label>Address:</label> 
    <input type="text" name="Address" /><br /><br /> 
    <label>Telephone nr:</label> 
    <input type="text" name="telephoneNr" /><br /><br /> 
    <br /> 
    <p>submit your form: </p><input type="submit" value="Submit" /> 
</form> 

JS:

function validate(){ 
    if(document.formValidation.firstName.value == "" || 
    document.formValidation.lastName.value == "" || 
    document.formValidation.Email.value == "" || 
    document.formValidation.confirmEmail.value == "" || 
    document.formValidation.Address.value == "" || 
    document.formValidation.telephoneNr.value == "") 
    { 
     alert("Please fill all the boxes before submitting!"); 
     return false; 
    } else { 
     alert('Your form has been submitted!'); 
    } 

} 
+2

這篇文章可能能夠幫助http://stackoverflow.com/questions/46155/validate-email-address-in-javascript –

回答

2

此功能將驗證電子郵件使用javascript:

function ValidateEmail(mail) 
{ 
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(mail)) 
    { 
    return (true) 
    } 
    alert("You have entered an invalid email address!") 
    return (false) 
} 

要驗證電話號碼:

function validatePhone(phone) { 
    var error = ""; 
    var stripped = phone.replace(/[\(\)\.\-\ ]/g, ''); 

    if (stripped == "") { 
     error = "You didn't enter a phone number."; 
    } else if (isNaN(parseInt(stripped))) { 
     phone = ""; 
     error = "The phone number contains illegal characters."; 

    } else if (!(stripped.length == 10)) { 
     phone = ""; 
     error = "The phone number is the wrong length. Make sure you included an area code.\n"; 
    } 
} 
+0

我該如何把它放在我的html代碼中?我是新手,我想知道如何爲將來做到這一點 – SadUnicorn

+0

您可以將這些功能添加到html(或單獨的.js文件)中的

0

我可以給你一個我用過的示例函數。它並不完美,但它的快速和容易以最小的編輯環境設置:

function mail_check(){ 
var email = document.getElementById(\'email\').value; 
var email_check = email.split("@"); 
if (email_check[1]){var email_check2 = email_check[1].split(".");} 
if (!email_check[1] || !email_check2[0] || !email_check2[1]) { 
document.getElementById(\'mail_status\').innerHTML = "<font color=red>Invalid Email address!</font>"; 
return false;} 
else if (email_check[1] && email_check2[0] && email_check2[1]) { 
document.getElementById(\'mail_status\').innerHTML = "<font color=green>Valid Email address!</font>"; 
return true;} 
} 

我想這是很明顯我有一個空的span元素,也被用的onkeyup JS事件直播改變(基本的onkeyup調用功能,這創造了系統檢查生活的錯覺......儘管它確實如此,所以我猜這畢竟不是幻覺!)

希望有所幫助。如果你想要進一步的幫助,請告訴我!

乾杯!

+0

我不知道如何在我的HTML代碼中調用這個函數,我是新來的JavaScript,我沒有我在做什麼的時間思想。任何幫助主人的js?:) – SadUnicorn

+0

只需添加到您的輸入字段'onkeyup =「mail_check()」' 它應該看起來像'' - 應該工作:) – vlex

0

這是很常見的任務,而你試圖解決這個問題是什麼,是像一個拉2008年的方式,嘿它是2013幾乎在這裏)

第一次嘗試來查找regExp來解決它以這種方式。

但是,爲什麼不使用HTML5 form validationModernizir來回退舊版/不支持的瀏覽器。

您將得到原生支持所有現代瀏覽器,這比JS快,再加上良好writen將關心它以適當的方式對那些不具備支持由於某種原因誰的form validations JS。