我有一个HTML输入字段,我希望用户能够看到,但不能编辑。如果我将该字段标记为“禁用”,它不会与表单的其余部分沿着提交。如果我将其标记为“只读”,它的行为就像我想要的那样,但仍然“看起来”启用(至少在Chrome上)。基本上,我希望输入字段 * 看起来 * 像一个禁用字段,但 * 行为 * 作为一个只读字段。这可能吗?谢谢edit:另外,如果我将其标记为'readonly',仍然可以通过双击它并选择以前存在的内容来更改其值。
0sgqnhkj1#
解决方法如下:你在你想要的地方禁用了输入(只是为了显示值),并隐藏了你需要的名称和值。
ktecyv1j2#
你可以使用css使它看起来像你想要的,尽管这可能不匹配其他禁用的字段跨浏览器/平台。
<input type="text" value="Sample text" readonly="readonly" style="color: #787878;"/>
h22fl7wq3#
我在JSF中遇到了类似的问题,其中隐藏字段用于持久化我需要的值,但如果表单验证在提交时失败,则只读或禁用的输入字段中的值将被清除。我发现了一个替代的解决方案,它似乎工作得相当优雅,让输入字段在技术上是可编辑的,但一旦它接收到焦点,它就会通过模糊来防止编辑。虽然您的服务器端环境可能不会遇到我在JSF中遇到的问题(即使输入字段标记为只读,它也不会提交值),但您可以在您的情况下使用相同的技术,结果是您不需要单独的隐藏字段来持久化值。然而,与第二个答案一样,它没有解决使字段看起来禁用的问题,至少没有一些额外的CSS代码。JSF中的代码:
<p:inputText id="entid" value="#{RequestBean.entityID}" onfocus="blur();" />
它变成了下面的HTML:
<input id="entid" type="text" value="10003" onfocus="blur();" />
你可以在这里看到更多:How to persist JSF view parameters through validation
o75abkj44#
我知道这个问题已经得到了回答,但我想给予我的CSS示例。因为当我在寻找一个解决方案时,如何设置输入字段的样式,使其看起来像是被禁用的,我总是以这样的输入字段结束。
边框-左和顶部具有较深的颜色等。所以a用这个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);
zlhcx6iw5#
我有同样的问题,我想禁用一个输入框,但我需要传递的值,而提交的形式。而下面的css对我来说如预期的那样有效指针事件:无;背景颜色:#f1f1f2;这将禁用输入框,并在提交表单时传递值。
5条答案
按热度按时间0sgqnhkj1#
解决方法如下:你在你想要的地方禁用了输入(只是为了显示值),并隐藏了你需要的名称和值。
ktecyv1j2#
你可以使用css使它看起来像你想要的,尽管这可能不匹配其他禁用的字段跨浏览器/平台。
h22fl7wq3#
我在JSF中遇到了类似的问题,其中隐藏字段用于持久化我需要的值,但如果表单验证在提交时失败,则只读或禁用的输入字段中的值将被清除。我发现了一个替代的解决方案,它似乎工作得相当优雅,让输入字段在技术上是可编辑的,但一旦它接收到焦点,它就会通过模糊来防止编辑。虽然您的服务器端环境可能不会遇到我在JSF中遇到的问题(即使输入字段标记为只读,它也不会提交值),但您可以在您的情况下使用相同的技术,结果是您不需要单独的隐藏字段来持久化值。然而,与第二个答案一样,它没有解决使字段看起来禁用的问题,至少没有一些额外的CSS代码。
JSF中的代码:
它变成了下面的HTML:
你可以在这里看到更多:How to persist JSF view parameters through validation
o75abkj44#
我知道这个问题已经得到了回答,但我想给予我的CSS示例。
因为当我在寻找一个解决方案时,如何设置输入字段的样式,使其看起来像是被禁用的,我总是以这样的输入字段结束。
边框-左和顶部具有较深的颜色等。所以a用这个CSS代码解决了它。
做了一个jsfiddle这样你们可以仔细看看。
它在Chrome上看起来不错,在其他浏览器上你需要修改一下颜色。就像在Firefox中一样,你也需要改变颜色和背景色等。
zlhcx6iw5#
我有同样的问题,我想禁用一个输入框,但我需要传递的值,而提交的形式。
而下面的css对我来说如预期的那样有效
指针事件:无;背景颜色:#f1f1f2;
这将禁用输入框,并在提交表单时传递值。