如何确保<选择>表单字段在被禁用时提交?

2022-08-30 01:21:08

我有一个表单字段,我想将其标记为“只读”,因为用户无法修改该值,但该值仍与表单一起提交。使用该属性可防止用户更改值,但不会随表单一起提交值。selectdisabled

该属性仅适用于 和 字段,但这基本上就是我想要的。有什么办法可以让它工作吗?readonlyinputtextarea

我正在考虑的两种可能性包括:

  • 而不是禁用 ,禁用所有 s 并使用 CSS 将选择变灰,使其看起来像是禁用的。selectoption
  • 将单击事件处理程序添加到提交按钮,以便在提交表单之前启用所有禁用的下拉菜单。

答案 1

禁用这些字段,然后在提交表单之前启用它们:

jQuery code:

jQuery(function ($) {        
  $('form').bind('submit', function () {
    $(this).find(':input').prop('disabled', false);
  });
});

答案 2
<select disabled="disabled">
    ....
</select>
<input type="hidden" name="select_name" value="selected value" />

您通常为 .select_name<select>

另一种选择。

<select name="myselect" disabled="disabled">
    <option value="myselectedvalue" selected="selected">My Value</option>
    ....
</select>
<input type="hidden" name="myselect" value="myselectedvalue" />

现在有了这个,我注意到,根据您使用的Web服务器,您可能必须将输入放在之前或之后。hidden<select>

如果我的记忆正确地为我服务,那么使用IIS,你把它放在前面,用Apache把它放在后面。与往常一样,测试是关键。