如何使用if语句验证电子邮件地址,同时删除内置验证


How do I validate an email address with an if statement while removing the built-in validation?

在我的表单中,我有一个输入类型为"email"的列表项。
这样做的问题是,每当我没有在输入框中输入有效的电子邮件地址时,就会弹出一个提示,"请输入电子邮件地址"。所以我的问题是我如何删除这个弹出并应用我自己的验证??我试着把novalidate ="novalidate"在表单中,并删除了弹出窗口,但我相信这影响了我的"if语句",因为它不工作来验证电子邮件地址。我所有其他的"if语句"都在工作,除了我在下面的代码中写的那个。下面是我的代码的一个简单布局:

<form action ="" novalidate="novalidate" method="post">
    <ul>
        <li>
            <input type="email" name="email">
        </li>
    </ul>
</form>
<?php
    if (empty($errors) === true) {
        if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            $errors[] = 'A valid email address is required.';
        }
?>

if()语句只会在输入有效的电子邮件时执行。您需要反转语句中的逻辑,同时还将novalidate参数保留在<form>:

中。
<form action="" novalidate="novalidate" method="post">
    <ul>
        <li>
            <input type="email" name="email">
        </li>
    </ul>
</form>

你的PHP应该是这样的:

<?php
if(empty($errors) === true) 
{
    if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) 
    {
        $errors[] = 'A valid email address is required.';
    }
}
?>