JavaScript を使用した電子メール アドレスの検証に関して、他にも質問があります。フォームの検証に関する質問もあります。ただし、コードを機能させることができず、この特定の問題をカバーする質問が見つかりません。
編集
ライブWebサイトでは、サーバー側の検証が不可欠であることを完全に理解しています. また、確認メールを送信する価値も理解しています。(私は実際にこれらすべての機能を備えたサイトを持っています)。PHPでスパムチェックをコーディングする方法を知っています。
この例では、電子メールの入力フィールドを検証するよう求められました。私は厳密に xhtml 1.0 に準拠する必要があるため、「email」タイプは使用できません。また、この割り当てにサーバー側スクリプトを使用することは許可されていません。電子メールの確認を整理できません。javascript で完全にチェックする必要があります。
これで私の質問が明確になることを願っています
2 つのことについてフォームを検証しようとしています。
すべてのフィールドにデータがあることを確認します。有効な電子メール アドレスが入力されているかどうかを確認します。
フォーム フィールドのデータを検証することはできますが、メール チェックを組み込むのは面倒です。
以前はアラートを出していましたが、間違って、今はまったく呼び出されていません (または、少なくともそのように動作しています)。
これが機能するようになったら、メールアドレスが一致するかどうかを確認することに集中する必要があります。ただし、これはこの質問の外の問題です。
でこれを検証することだけに集中していjavascript
ます。この特定のインスタンスでは、サーバー側については心配していません (この質問以外の別の問題)。ありがとう。
function Validate()
{
var inputs = [document.getElementById('fname'),_
document.getElementById('lname'), document.getElementById('email1'),_
document.getElementById('email2')];
for(var i = 0; i<inputs.length; i++)
{
if(inputs[i].value == '')
{
alert('Please complete all required fields.');
return false;
}
else if ((id =='email1' || 'email2') &&_
(inputs[i].value!= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/ )){
alert('Please enter a valid email address.');
return false;
}
}
}
<form onsubmit="return Validate()" action="" method="post" id="contactForm" >
<input type="text" name="fname" id="fname" />
<input type="text" name="lname" id="lname" />
<input type="text" name="email1" id="email1" />
<input type="text" name="email2" id="email2"/>
<input type="submit" value="submit" name="submit" />
</form>
サイドノート - 折り返すテキストをフォーマットするには、問題ありませんか (質問を投稿する目的で、読みやすくするために新しい行を追加してアンダースコアを作成し、作成しますか?実際のテキストにはこれがありません!投稿用にコードをフォーマットする簡単な方法があります。
編集 2
これをコメントアウトすると機能します:
/*else if ((id =='email1' || id=='email2') && (inputs[i].value!= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/ )){
alert('Please enter a valid email address.');
return false;
}*/
したがって、これはトラブルシューティングに役立ちます。