2012-11-29 57 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。