1

検証関数に問題があります。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!');
    }

}
4

4 に答える 4

3

http://www.w3resource.com/javascript/form/email-validation.phpから:

この関数は、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";
    }
}
于 2012-11-29T15:32:04.553 に答える
1

正規表現を使用したい。これを行う方法については、すでに非常に多くの質問があります。

https://stackoverflow.com/search?q=javascript+regex+phone+number+e​​mail

于 2012-11-29T15:28:02.780 に答える
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;}
}

OnKeyUp jsイベントでライブで変更される空のspan要素があることは明らかだと思います(基本的にonkeyupは関数を呼び出し、システムがライブでチェックするような錯覚を作成します...それはそうですが、その後の錯覚ではないと思いますすべて-ハァッ!)

お役に立てば幸いです。さらにサポートが必要な場合はお知らせください。

乾杯!

于 2012-11-29T15:35:11.997 に答える
0

これは非常に一般的なタスクであり、それを解決しようとする方法は、2008年のようなものです。2013年はほぼここにあります)

最初に、この方法でそれを解決するためにregExpを検索してみてください。

しかし、ええ、古い/サポートされていないブラウザでのフォールバックにHTML5フォーム検証Modernizirを使用してみませんか。

JSよりも高速なすべての最新のブラウザーのネイティブサポートに加えて、何らかの理由でをサポートしていないブラウザーに対して適切な方法でそれを処理する、適切に記述されたjsを取得しますform validations

于 2012-11-29T15:35:22.333 に答える