首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何禁用不在表单内的选择框?

如何禁用不在表单内的选择框?
EN

Stack Overflow用户
提问于 2008-12-05 23:53:04
回答 2查看 26.3K关注 0票数 2

当选择标记没有嵌套在表单标记中时,我似乎无法禁用选择框。我尝试的一些东西是(使用Firefox3):(通过Jquery)

代码语言:javascript
运行
复制
$("#mySelect").attr("disabled", true);
$("#mySelect").attr("disabled", "disabled");

(另请参阅)

代码语言:javascript
运行
复制
document.getElementById('mySelect').disabled = true;
document.getElementById('mySelect').disabled = true;

下面是HTML:

代码语言:javascript
运行
复制
<select id="mySelect" onchange="updateChoice();">
<option value="1">First</option>
<option value="2" selected="">Second</option>
</select>

我必须在表单元素中包含此选择框吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-05 23:58:21

简而言之:不需要,您不需要在表单中包含选择框。

相对于body标签,你的JavaScript目前包含在哪里?请记住,如果您的页面头部包含内联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节点中包含以下内容,而不是将代码放在标记的底部:

代码语言:javascript
运行
复制
 <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

票数 4
EN

Stack Overflow用户

发布于 2008-12-07 21:45:46

在使用jQuery库时,请确保您编写的代码始终包含在$.ready函数中:

代码语言:javascript
运行
复制
$(function () {
    //Type in your code here
});

这样可以确保在页面完成加载后,就会执行您编写的代码

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/345540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档