HTML选择元素的readOnly等效项

Ala*_*orm 9 html javascript dom prototypejs

是否有HTML选择字段的属性或技术等同 readOnly="true"于HTML输入?

我有一个表单选择字段我想要禁用,但仍然在表单发布时传递.如果这是一个HTML输入,我会做这样的事情

$('select_id').setAttribute('readOnly', 'true');
Run Code Online (Sandbox Code Playgroud)

并且浏览器会将该字段呈现为不可编辑的,但它的值仍将传递给后端.我想要一个类似的HTML选择,但做以下

$('#select_id').setAttribute('readOnly', 'true');
Run Code Online (Sandbox Code Playgroud)

不起作用.该属性已成功添加到DOM,但浏览器仍将其呈现为可选.

我意识到我可以做到以下几点

$('#input_id').disabled();
Run Code Online (Sandbox Code Playgroud)

但是当一个字段被禁用时,它的值不会传递给后端.

我想要一种方法来禁用这个选择字段,但仍然传入后端.

(示例使用Prototype JS,但我对任何通用解决方案感兴趣)

Sjo*_*erd 22

禁用除选定选项以外的所有选项

<select>
<option disabled="disabled">1</option>
<option selected="selected">2</option>
<option disabled="disabled">3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

这样下拉列表仍然有效(并提交其值),但用户无法选择其他值.

  • @AlanStorm,这是一个测试的地狱:)) (3认同)
  • 不确定是谁投票或为什么,这似乎有用(至少在Chrome中,现在测试其他浏览器) (2认同)
  • 此解决方案的问题是,用户仍然可以使用CTRL +单击取消选择选项 (2认同)