我希望选项 ccc 是可选的,但不提交,所以当有人提交带有选项 ccc 的表单时,<select>
不应该发送所有内容。
只有 HTML 的解决方案是最好的。
<select name="some">
<option>aaa</option> //send
<option>bbb</option> //send
<option special>ccc</option> //dont send
</select>
select
在使用 javascript 提交表单之前,如果不删除或禁用它,您将无法阻止提交。
话虽如此,在服务器端对此进行测试更有意义,并且实际上在未选择任何选项时会定期进行,如下所示:
<select name="some">
<option value="-1">Select an option</option>
<option value="aaa">aaa</option>
<option value="bbb">bbb</option>
</select>
PHP:
if ($_POST['some']!=-1) {
// do something
}
仅使用 HTML,将始终提交该字段。但是,您可以发布一个空值,产生几乎相同的效果:
<select name="some">
<option value="aaa">aaa</option>
<option value="bbb">bbb</option>
<option value="">ccc</option> //empty value
</select>
仅使用 HTML,您可以
<form action="#" method="POST">
<select name="some" required>
<option selected value="">ccc</option> //empty value
<option value="aaa">aaa</option> //send
<option value="bbb">bbb</option> //send
</select>
<input type="submit" name="submit">
</form>
尝试这个
<select name="some">
<option value="aaa">aaa</option> //send
<option value="bbb">bbb</option> //send
<option>ccc</option> //dont send
</select>
如果我是正确的,当您发送选择了 ccc 的表单时,这应该不会返回任何内容。