提交禁用的输入字段的值


Answers:


238

我想在表单上禁用输入字段,并且在提交表单时,不会提交禁用表单中的值。

用例:我正试图从Google Map中获取Lat Lng并想显示它。. 但不希望用户对其进行编辑

您可以readonly在输入字段中使用属性

<input type="text" readonly="readonly" />

2
请注意,输入仍将能够获得焦点。参见:stackoverflow.com/questions/5443952/…–
拉斐尔·奥利维拉

5
8年后的最佳答案。只是想补充一点,以使文本显示为不可编辑,所以我添加了CSS:input:read-only { color:grey; }
UltrasoundJelly

21

我知道这很老了,但我遇到了这个问题,没有一个合适的答案。nickf的解决方案有效,但是需要javascript。最好的方法是禁用该字段并仍传递值是使用一个隐藏的输入字段将该值传递给表单。例如,

<input type="text" value="22.2222" disabled="disabled" />
<input type="hidden" name="lat" value="22.2222" />

这样,就可以传递值,但用户会看到灰色的字段。readonly属性不会使其变灰。


1
您可以在禁用的文本框中添加CSS以将其显示为灰色。
krillgar '17

value禁用输入是否必要?
奥马尔的

10

您还可以使用Readonly属性:输入将不会显示为灰色,但将不可编辑

<input type="text" name="lat" value="22.2222" readonly="readonly" />

2

输入元素具有称为的属性disabled。提交表单后,只需运行以下代码:

var myInput = document.getElementById('myInput');
myInput.disabled = true;

5
解决原始问题时,为了在表单提交过程中传递值,“ disabled”属性应为“ false”而不是“ true”。
Daniel Vukasovich
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.