火狐浏览器下js无法使用disabled属性啊?怎么解决?
发布网友
发布时间:2022-04-20 16:28
我来回答
共3个回答
热心网友
时间:2023-09-17 12:36
标准html里调用js,在firefox下是好用的:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<input name="contraallocations" type="button" value="test">
</body>
<script type="text/javascript">
document.getElementsByName("contraallocations")[0].disabled="true";
</script>
</html>
问题可能出在标签“html:button”上,不知道它是如何实现的。。。。
另外,最好把标签解析之后最终的html代码贴出来,否则很难排查问题。
=========================
解析后可见你的代码并没有出现在“button ”标签内,而是进入了<LI>标签。标准Html里的LI标签是没有disabled属性的,所以火狐下这段js不起作用。 不过即便是用IE(IE8)刚才我试验了一下:添加disabled属性后表面上看起来的确可以使这个组件颜色置灰,但实际上并不能像button那样真正屏蔽点击事件。
不知道你想让它在FF或IE下怎么“管用”呢?彻底屏蔽点击事件么?
================================
就算你在IE6下好用,也不代表那种写法是“对”的,其实是因为IE6错了。而且很可能下个版本的IE(比如我用IE8试验的)就不好用了。
下面是我写的一段在ff下可用的,用js模拟“禁用”的例子,你可以参考下:
只要向 function disable(object) 方法中传递某个DOM对象,且该对象的disabled属性值为true,则该对象(包括其子节点)的颜色会被置灰,且功能(onclick)被“禁用”。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<ul>
<li id="contraallocations_diabled" class = "button" name="contraallocations" value="Submit" onclick="" disabled="true">
<a href="#"> Contra Allocations</a></li>
<li id="contraallocations_normal" class = "button" name="contraallocations" value="Submit" onclick="alert(1)">
<a href="#"> Contra Allocations</a></li>
</ul>
</body>
<script type="text/javascript">
window.onload = function(){
document.getElementById("contraallocations_diabled").onclick = function(){alert(1);};
disable(document.getElementById("contraallocations_diabled"));
}
function disable(object){
if(object.getAttribute("disabled")==true || object.getAttribute("disabled")=="true"){
object.style.color = "grey";
for(var i=0;i<object.childNodes.length;i++){
if(object.childNodes[i].style)
object.childNodes[i].style.color = "grey";
}
object.onclick = function(){};
}
}
</script>
</html>
============================
因为IE6是最不支持W3C Web标准的浏览器,所以很多行为和表现都是“错”的。
====================
你在哪个浏览器上执行不了啊?把类型/版本报出来好不?我在IE8/FF3.5下都是可用的。
热心网友
时间:2023-09-17 12:37
可以参考W3C的标准
热心网友
时间:2023-09-17 12:37
disabled不是标准属性,新版浏览器都不支持了。
您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。