Answers:
如果您在呈现页面时就知道了这一点,这听起来像您所做的那样,因为数据库具有一个值,最好在呈现页面时禁用它而不是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(魔术)中正常工作。
演示:https : //jsfiddle.net/L96svw3c/-稍微解释了disabled
和之间的区别readOnly
。
readonly
(小写)在Ubuntu 52上的Firefox 52中仍然不起作用-应该是驼峰式的。
input
元素,id="gate"
然后尝试了您的代码,这似乎对我不起作用...
如果数据是从数据库填充的,则可以考虑不使用<input>
标签来显示它。不过,您可以在标记中将其禁用:
<input type='text' value='${magic.database.value}' disabled>
如果以后需要使用Javascript禁用它,则可以设置“ disabled”属性:
document.getElementById('theInput').disabled = true;
根据<input>
我的经验,我建议不显示该值的原因是它会引起布局问题。如果文本很长,那么<input>
用户将需要尝试滚动文本,这是普通人不会想到的。如果只是将其放入<span>
或某物中,则将具有更多的样式灵活性。
您也可以通过jquery:
$('#foo')[0].disabled = true;
工作示例:
$('#foo')[0].disabled = true;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="foo" placeholder="placeholder" value="value" />
根据需要(例如document.getElementById('mytextbox')
)获取对输入框的引用,并将其readonly
属性设置为true
:
myInputBox.readonly = true;
或者,您可以简单地内联添加此属性(无需JavaScript):
<input type="text" value="from db" readonly="readonly" />