次のようなフォームのフィールドがあります。
<input type="text" name="email" />
PHP を使用して、このフィールドに加えて他のフィールドを含むフォームの有効性を確認しています。有効性チェックが失敗した場合は、値をセッションに保存し、フォームを再度出力してエラー メッセージを表示し、フォームの値を事前入力します。
「person@example.com」などの電子メールを追加すると、フォームが無効になり、「person@example.com」が JS に置き換えられます。
<script type='text/javascript'> <!-- var prefix = 'ma' + 'il' + 'to'; var path = 'hr' + 'ef' + '='; var addy34269 = 'person' + '@'; addy34269 = addy34269 + 'example' + '.' + 'com'; document.write('<a ' + path + '\'' + prefix + ':' + addy34269 + '\'>'); document.write(addy34269); document.write('<\/a>'); //-->\n </script><script type='text/javascript'> <!-- document.write('<span style=\'display: none;\'>'); //--> </script>This email address is being protected from spambots. You need JavaScript enabled to view it. <script type='text/javascript'> <!-- document.write('</'); document.write('span>'); //--> </script>
言うまでもなく、これは私が望んでいるものではありません。これは Chrome と Firefox で発生します。他の人についてはわかりません。フォームの無効化後にブラウザが電子メールを置き換えないようにするにはどうすればよいですか?
str_replace を使用して電子メールのように見えないようにし、JS を使用して別の文字列置換を行って元の値に戻すことを考えていましたが、可能であれば JS なしでこれを実行したいと考えています。何か案は?