我有一个HTML输入框,我希望用户可以看到它但不能编辑。如果我将该字段标记为“禁用”,则它不会随表单的其余部分一起提交。如果我将其标记为“只读”,它会表现出我想要的行为,但在Chrome上仍然看起来是启用状态。
基本上,我想让输入框看起来像一个禁用的输入框,但表现为只读输入框。这可能吗?
谢谢。
编辑:此外,如果我将其标记为“只读”,仍然可以通过双击它并选择之前存在的内容来更改其值。
以下是解决方法:您可以在需要的位置禁用输入(仅用于显示值),并使用名称和所需值创建一个隐藏的输入。
您可以使用CSS来使其看起来符合您的要求,但是这可能无法跨浏览器/平台匹配其他禁用字段。
<input type="text" value="Sample text" readonly="readonly" style="color: #787878;"/>
<p:inputText id="entid" value="#{RequestBean.entityID}" onfocus="blur();" />
变成如下的HTML:
<input id="entid" type="text" value="10003" onfocus="blur();" />
您可以在这里查看更多相关信息:如何通过验证保留JSF视图参数
我知道这个问题已经得到了解答,但我想提供我的 CSS 示例。
因为当我搜索如何为输入字段设置样式使其看起来像被禁用时,我总是得到一个看起来像这样的输入字段。
使用左边和上边的边框颜色较暗等方式来解决它。所以我使用了以下 CSS 代码来解决问题。
input[readonly]{
border-color: darkgrey;
border-style: solid;
border-width: 1px;
background-color: rgb(235, 235, 228);
color: rgb(84, 84, 84);
padding: 2px 0px;
}
我制作了一个jsfiddle,这样你们就可以更仔细地查看。
在Chrome上看起来很好,在其他浏览器上需要稍微修改一下颜色。例如,在Firefox中,您需要更改颜色和背景颜色等。
background-color: rgb(240, 240, 240);
color: rgb(109, 109, 109);