如何禁用inputtypes=文本?

如果可能的话,我想禁止在使用JavaScript的texttypes的input字段中书写。 input字段从数据库填充; 这就是为什么我不希望用户修改其值。

如果您在页面呈现时知道这一点,这听起来像是因为数据库具有值,那么最好在呈现而不是JavaScript时禁用它。 要做到这一点,只需添加readonly属性(或disabled ,如果你想从表单提交中删除它)到<input> ,像这样:

 <input type="text" disabled="disabled" /> //or... <input type="text" readonly="readonly" /> 
 document.getElementById('foo').disabled = true; 

编辑

要么

 document.getElementById('foo').readOnly = true; 

注意readOnly应该在CamelCase中正常工作在Firefox(magic)中。

如果从数据库填充数据,则可以考虑使用<input>标记来显示它。 不过,您可以在标签中将其禁用:

 <input type='text' value='${magic.database.value}' disabled> 

如果以后需要用Javascript禁用它,可以设置“disabled”属性:

 document.getElementById('theInput').disabled = true; 

我build议不把价值看作一个<input>是,根据我的经验,这会导致布局问题。 如果文本很长,那么在<input> ,用户将需要尝试滚动文本,这不是人们常常猜测的事情。 如果你把它放在一个<span>或者什么东西里面,你可以有更多的样式灵活性。

无论你喜欢(比如document.getElementById('mytextbox') )获取你的input框的引用,并将其readonly属性设置为true

 myInputBox.readonly = true; 

或者,您可以简单地添加此属性内联(不需要JavaScript):

 <input type="text" value="from db" readonly="readonly" /> 

你也可以通过jquery:

 $('#foo').disabled = true;