已禁用选择选项的表单被选为默认值,不发送任何要验证的内容


Form with disabled select option selected as default not sending anything to validate

我有一个这样的表单:

<select name="employment">
    <option disabled="" selected="">-- What is your employment status --</option>
    <option value="employed">Employed</option>
    <option value="self_employed">Self Employed</option>
</select>

在PHP中,我运行每个$_POST变量,然后检查它们是否有值。如果不是,我会将该字段添加到数组中以显示错误消息。

问题是,如果我选择了默认的"禁用"消息,则不会通过post值传递任何信息,因此没有什么可供我验证的。

如果我打印$_POST变量,那么它不包含"就业"字段,除非我选择了一个选项。

我该如何解决这个问题?

<select name="employment">
    <option disabled selected>-- What is your employment status --</option>
    <option value="employed">Employed</option>
    <option value="self_employed">Self Employed</option>
</select>

禁用属性

  1. 禁用的属性是布尔属性
  2. 如果存在,则指定应禁用某个选项
  3. 禁用的选项不可用且不可单击

语法:

<select disabled> 

<select disabled="">

在XHTML的情况下,语法与不同

<select disabled="disabled">

隐藏属性

所以,如果您想验证它,请在选项中使用hidden

<select name="employment">
    <option hidden>-- What is your employment status --</option>
    <option value="employed">Employed</option>
    <option value="self_employed">Self Employed</option>
</select>

当没有选择任何内容时,它将输出为-- What is your employment status --

<?php
echo $Employment=$_POST['employment'];
?>

输出:-- What is your employment status --

因此,现在您可以在下拉中轻松使用您的验证

有关更多信息,请单击禁用属性-W3学校

试试这个:

 <select name="employment">
        <option disabled="" selected="" value ="">-- What is your employment status --</option>
        <option value="employed">Employed</option>
        <option value="self_employed">Self Employed</option>
    </select>

PHP:

if(empty($_POST['employment'])){
  return false;
}else {
  // I got value;
}
相关文章: