当选择标记没有嵌套在表单标记中时,我似乎无法禁用选择框。我尝试的一些东西是(使用Firefox3):(通过Jquery)
$("#mySelect").attr("disabled", true);
$("#mySelect").attr("disabled", "disabled");
(另请参阅)
document.getElementById('mySelect').disabled = true;
document.getElementById('mySelect').disabled = true;
下面是HTML:
<select id="mySelect" onchange="updateChoice();">
<option value="1">First</option>
<option value="2" selected="">Second</option>
</select>
我必须在表单元素中包含此选择框吗?
发布于 2008-12-05 23:58:21
简而言之:不需要,您不需要在表单中包含选择框。
相对于body
标签,你的JavaScript目前包含在哪里?请记住,如果您的页面头部包含内联JavaScript,则它将在页面加载时触发。此时,选择框将不会被解析,因此,您的代码无法访问它以禁用它。
我不喜欢将JavaScript和标记混合在一起,但是这个演示应该适用于所有意图和目的。
<html>
<head>
<title>JavaScript Select Demo</title>
</head>
<body>
<select id="mySelect" onchange="updateChoice();">
<option value="1">First</option>
<option value="2" selected="">Second</option>
</select>
</body>
<script type="text/javascript">
document.getElementById('mySelect').disabled = true;
</script>
</html>
无论出于何种原因,如果您必须将脚本放在页面中而不是外部文件中,则可以设置一个事件处理程序,以便在页面加载后执行相同的功能。您可以在head节点中包含以下内容,而不是将代码放在标记的底部:
<head>
<title>JavaScript Select Demo</title>
<script type="text/javascript">
window.onload = function() {
document.getElementById('mySelect').disabled = true; ;
}
</script>
</head>
最后,您也可以在JavaScript中设置一个事件处理程序来执行相同的行为,而不是在标记的属性中包含一个onchange
处理程序。jQuery makes this really easy。
发布于 2008-12-07 21:45:46
在使用jQuery库时,请确保您编写的代码始终包含在$.ready
函数中:
$(function () {
//Type in your code here
});
这样可以确保在页面完成加载后,就会执行您编写的代码
https://stackoverflow.com/questions/345540
复制相似问题