Internet Explorer 8:如何使只读文本输入框无光标

4
我正在尝试模拟Firefox中禁用状态的文本输入框(textarea和输入框)的外观和感觉。
唯一需要考虑的浏览器兼容性是Internet Explorer 8。我不需要考虑任何更早版本(Intranet)的问题。
Internet Explorer不允许更改禁用文本输入框的文本颜色。它确实允许更改背景颜色,但灰色文本在灰色背景上几乎无法辨认。
我已经声明了一个输入框和文本区域,如下所示:
<input name="Count" id="Count" onfocus="this.blur()" type="text" readOnly="readonly" value="0"/>
<textarea name="Notes" id="Notes" style="width: 100%;" onfocus="this.blur()" rows="10" cols="20" readOnly="readonly"/>

我有以下样式通过CSS应用:

input[readonly], textarea[readonly] {
  color:black !important;
  background-color: threedface !important;
}

在视觉上,这在Firefox和IE中都表现得非常出色。但是,IE仍允许光标进入文本区域或文本框。我错过了什么?

添加内容

通过光标,我指的是键盘光标,例如当您在此处输入回复时。

也许我的问题更好地陈述为用户仍然可以点击文本区域并显示键盘光标。但看起来闪烁的光标会很快消失。


我在IE8中没有看到问题 http://jsfiddle.net/dSxQ7/ - CrazyDart
我在IE 8、IE 9或Chrome中使用此代码没有看到任何区别。它们似乎都会在您第一次单击字段时显示光标,然后它就消失了。 - Shawn Steward
我无法在我的IE8上复制该问题。没有闪烁的光标出现。 - tw16
给Shawn:如果可能的话,那就是我希望修复的行为。如果可能的话,我不想让光标甚至在那一瞬间出现。Firefox根本不显示光标。 - John Stone
3个回答

3

1
我所说的光标是指键盘光标(在原问题中添加了编辑)。使用我最初发布的样式不会改变鼠标光标。 - John Stone

1
在脚本标签中使用这个简单的jQuery函数来处理所有只读输入字段。如果需要针对特定项,甚至可以使用任何特定的ID或类。
$('input[readonly]').focus(function(){
this.select();
});

1
由于这是您的第一个回答,我想给一点建议:仅包含代码的回答很少足够清晰明了,例如,它不清楚它是否是一个更正、附加代码、应该放在哪里等等。我并不是说您需要冗长的描述,但是请注明类似“将此调用添加到x...,从而导致y”。 - tolanj

-1

你能用 disabled=disabled替代readonly=readonly吗?


2
“disabled”将不会提交输入。 - Ogrim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接