我需要创建一个表单元素
< input disabled type =“text”value =“Shui Mu Tsinghua”/>
默认情况下已禁用。它可以在 onmouseover 发生时启用。
的onmouseover = “this.disabled = FALSE;”
由 onmouseout
禁用的onmouseout = “this.disabled = TRUE;”
我需要检查以下内容。 如果< input>重点是它不应该被禁用。
如果表单元素失去焦点则会禁用。
请帮我完成活动。
< input disabled type =“text”value =“水沐清华”onmouseover =“this.disabled = false;” onfocus =“ ??? ”onblur =“ ??? ”onmouseout =“if( ??? ){this.disabled = true ;}“/>
答案 0 :(得分:4)
这不起作用,因为在大多数浏览器中,onmouseover
不会触发禁用的输入。 (Opera是一个例外,IE通常不会,除非你通过拖动操作欺骗它。)
在任何情况下,对我来说,这听起来都是一个非常奇怪且对用户不友好的伎俩。 为什么你想禁用它吗?如果在尝试与之交互时它变为非禁用状态,那么它似乎没有任何意义(但是有很多可访问性的缺点)。
如果它只是造型,那么使用样式:
<style type="text/css">
.weirdinput { color: silver; }
.weirdinput:hover, .weirdinput:focus { color: black; }
</style>
<input class="weirdinput" value="smth" />
但是,IE&lt; 8不支持:focus
,IE&lt; 7不支持非链接上的:hover
,因此如果您需要它,那么您必须添加一些脚本,例如。类似的东西:
<style type="text/css">
.weirdinput { color: silver; }
.weirdinput:hover, .weirdinput:focus, .weirdhover, .weirdfocus { color: black; }
</style>
<input class="weirdinput" value="smth" />
<!--[if lt IE 8]><script type="text/javascript">(function() {
// Fix focus/hover for IE on all inputs with class 'weirdinput'
//
var inputs= document.getElementsByTagName('input');
for (var i= 0; i<inputs.length; i++) {
var input= inputs[i];
if (input.className.indexOf('weirdinput')!==-1) {
input.onmouseover= mouseover;
input.onmouseout= mouseout;
input.onfocus= focus;
input.onblur= blur;
}
}
function mouseover() {
this.className+= ' weirdhover';
}
function mouseout() {
this.className= this.className.replace(' weirdhover', '');
}
function focus() {
this.className+= ' weirdfocus';
}
function blur() {
this.className= this.className.replace(' weirdfocus', '');
}
})();</script><![endif]-->
答案 1 :(得分:0)
你能做的是;
答案 2 :(得分:0)
我认为您在获取此行为时会遇到很多麻烦,因为禁用的字段不会收到mouseover
(或mouseenter
,如果您的浏览器支持它)事件。我甚至尝试在它下面的元素上捕获事件,但禁用的字段会吃它。
答案 3 :(得分:0)
已禁用的字段未提交,不在键标签节点列表中,也不会侦听或传递事件。您禁用输入,以便用户无法更改其值。
如果没有首先获得焦点,则无法更改字段。
您只能通过脚本更改disabled属性,该脚本来自页面上其他位置的事件。
但是如果没有名称,就像在您的示例中一样,字段的值在任何情况下都不会随其表单一起提交,那么该字段被禁用的重要性如何?
如果您的意图是在javascript 不启用时禁用该字段,为什么不用css隐藏它并以脚本风格显示?