如何使文本输入不可编辑?


344

所以我有文字输入

<input type="text" value="3" class="field left">

这是我的CSS

background:url("images/number-bg.png") no-repeat scroll 0 0 transparent;
border:0 none;
color:#FFFFFF;
height:17px;
margin:0 13px 0 0;
text-align:center;
width:17px; 

是否有设置或技巧,我当时在考虑制作标签,但样式如何。我该如何转换它们?有没有更好的方法?还是那是唯一的方法?

Answers:


706
<input type="text" value="3" class="field left" readonly>

无需样式。

<input>在MDN上查看https://developer.mozilla.org/en/docs/Web/HTML/Element/input#Attributes


4
或readonly =“ readonly”(如果您希望它全部都是XML-y),请参见下面的斯蒂芬·穆勒(Stephan Muller)的示例:)
Algy Taylor

1
@Algy Taylor:是的,那是原始答案,当原始问题带有一个任性的[xhtml]标签使每个人都对哪个标准适用于哪个标准
感到疯狂时

有没有什么办法去除,当你将鼠标悬停在出现红色圆圈textareareadonly属性?
Chaudhry Waqas,2015年

1
@Shafizadeh-不,那是一件好事。对于浏览器来说,正确实施将非常困难,并且会使人们难以理解。不要试图让简单的控件执行复杂的任务。将您的输入分成几部分,每一部分都很简单(一个可编辑的控件,然后是一个不可编辑的HTML元素,然后是另一个可编辑的控件)。
制造商史蒂夫(Steve)2013年

1
如果您不希望保留该值,还请确保检查此服务器端。在浏览器的开发人员工具中,删除属性很容易,这又使输入字段再次可编辑。
Kurt Van den Branden


41

readonly如果只想读取输入内容,则可以使用attribute。而且disabled,如果您希望显示输入但可以完全禁用,则可以使用attribute(即使像PHP这样的处理语言也无法读取)。


2
当您将表单发送到php文件时,它不会读取禁用的输入。这可能就是他的意思。
卡洛斯2W,2016年

3
准确地发生的是,当您提交表单时,禁用输入甚至没有发送,与php,js或其他无关。
vasilevich

28

只是为了完成可用的答案:

输入元素可以是只读的也可以是禁用的(它们都不是可编辑的,但是有一些区别:focus,...)

在这里可以找到很好的解释:
HTML表单输入字段的disable =“ disabled”和readonly =“ readonly”有什么区别?

如何使用:

<input type="text" value="Example" disabled /> 
<input type="text" value="Example" readonly />

也有一些解决方案,使其通过CSS或JavaScript作为解释在这里


5
如果你要使用的/>关闭标记,您不妨扩大你的属性disabled="disabled"readonly="readonly"太。
BoltClock


3

添加readonly属性

<input type="text" value="3" class="field left" readonly="readonly" >

要么 -

<input type="text" value="3" class="field left" readonly>

无需CSS!


22
这给我的答案和斯蒂芬3年前的答案还没有回答的问题增加了什么?您甚至镜像了我关于不需要CSS的声明。
BoltClock

2

您只需要在最后添加禁用

<input type="text" value="3" class="field left" disabled>

1
如果将其设置为禁用,则不会提交该值。这可能是需要的,但并不是要的。 附带说明一下,我之所以来到这里,恰恰是因为我的“残疾”输入并不像我期望的那样行为
Balmipour

2

添加readonly

<input type="text" value="3" class="field left" readonly>

如果希望不以表单形式提交值,请添加disabled属性。

<input type="text" value="3" class="field left" disabled>

没有使用CSS的方法总是可以做到这一点。

为什么?CSS不能“禁用”任何东西。您仍然可以关闭显示或可见性并使用它们,pointer-events: nonepointer-events不适用于早于IE 11的IE版本。


0

如果您确实要使用CSS,请使用following属性,这将使字段不可编辑。

pointer-events: none;

哦哦哦。这在某些浏览器中不起作用。
zixuan
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.