2012-02-14 15 views
1

私はjavascriptで検証されるPHPフォームを持っています。ユーザーがメールを確認しなければならないフォームに別のフィールドを追加したいと思います。どうすればjavascript検証ファイルでこれを行うことができますか?あなたの確認メールname(または任意の最初の引数setHandler()をすると仮定するとフィールドデータを他と比較する方法

this.setHandler('email', 
     function (value) { 
      regex=/^[a-zA-Z0-9._-][email protected]([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/; 
      return regex.test(value); 
     } 
    ); 

答えて

1

はこのような何かを適応...

this.setHandler('email-confirm', 
    function (value) { 
     return value == document.getElementsByTagName('email')[0].value; 
    } 
); 

: はここに私の現在の最初のメールフォームの検証です)がemail-confirmで、元の電子メール入力のnameemail(これはその最初の要素であると仮定します)です。

基本的には、email-confirmの現在の値と元の値を比較していて、等しい場合、関数はtrueを返します。

+0

こんにちは、お返事ありがとうございます。上記のコードが何をしているのかを説明して、より理解してください。 –

+0

@ASmith編集を行いました。 – alex

+0

すごく、ありがとう! –

0

もちろん、実際の答えは、正規表現を書いて電子メールを検証するときには大抵の人が間違っているので注意が必要です。あなたは[email protected]のようなものの最初の部分を無視し、custom top-level domainsには失敗します。

もし可能であれば、jquery-validateのような既存のライブラリを使用してください。彼らは既にあなたのために努力しており、電子メールの検証とフィールドの比較が組み込まれています。

自分で書く必要がある場合は、better expressionを使用してください。

/^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\ 
".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA 
-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ 

とにかく、あなたは実際に互いに対して一つのフィールドを比較するだけの問題ではありませんこれは...自分の電子メールを「確認」する方法について尋ねました。

// using jQuery 
this.setHandler('email2', 
    function (value) { 
     return (value == $("#email").val()); 
    } 
); 
+0

こんにちは、お返事ありがとうございます。上記のコードは何をしていますか?私が確認すると、ユーザーが正しいメールアドレスに入力したことを間違えていないことを確認します。確かにそれは元の電子メールフィールドと新しい確認電子メールフィールドを比較することだけです。 –

関連する問題