在我的表单中,我有一个输入类型为"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.';
}
}
?>