我有一个格式如下的字段:
<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 的情况下这样做。有任何想法吗?