为何PHP无法显示邮箱验证错误?附代码求助
邮箱验证错误时输入框边框变红功能失效的修复方案
你的代码存在两个核心问题导致功能无法生效:
- 把
<style>标签直接嵌套在<input>标签的属性列表中,这违反了HTML语法规则,浏览器无法识别这种错误的结构。 <input>标签未正确闭合就插入PHP代码,存在语法错误。
下面提供两种可行的修复方式:
方法一:使用内联样式(直接给输入框加style属性)
<?php $emailError = false; if (isset($_POST['submit_button'])) { $email = $_POST['email']; if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailError = true; } } ?> <!DOCTYPE html> <html> <head> </head> <body> <form method="post"> <div class="input-group" id="email-input"> <input type="text" id="email" name="email" autocomplete="off" placeholder="Email" <?php if ($emailError) echo 'style="border-color: #ff0000;"'; ?>> </div> <button id="submit-button" name="submit-button" type="submit">Sign Up!</button> </form> </body> </html>
方法二:将样式放在head标签内
<?php $emailError = false; if (isset($_POST['submit_button'])) { $email = $_POST['email']; if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailError = true; } } ?> <!DOCTYPE html> <html> <head> <?php if ($emailError): ?> <style> #email { border-color: #ff0000; } </style> <?php endif; ?> </head> <body> <form method="post"> <div class="input-group" id="email-input"> <input type="text" id="email" name="email" autocomplete="off" placeholder="Email"> </div> <button id="submit-button" name="submit-button" type="submit">Sign Up!</button> </form> </body> </html>
两种方法都能解决问题:方法一直接给错误状态的输入框添加内联样式,方法二则把错误样式放在页面头部的style标签中,均符合HTML语法规范,浏览器可正确解析并应用样式。
内容的提问来源于stack exchange,提问作者user21632495
相关产品推荐
相关产品推荐

