javascript - jQuery 复选框自动禁用和重新启用

标签 javascript jquery html select checkbox

我有这样的 HTML 代码和 JavaScript 代码(我使用的是 jQuery)

HTML:

<input type="checkbox" name="type" value="program" id="box-1" /> Desktop Programming
<select name="lang-1" id="select-1" disabled>
    <option value="c">C/C++</option>
    <option value="vb">VB</option>
    <option value="cs">C#</option>
</select><br /><br />

<input type="checkbox" name="type" value="web" id="box-2" /> Web Development
<select name="lang-2" id="select-2" disabled>
    <option value="asp">ASP</option>
    <option value="php">PHP</option>
    <option value="ror">Ruby on Rails</option>
</select><br /><br />

JavaScript(jQuery):

$(document).ready(function(){
    var x;
    $("#box-" + x).click(function(){
        var $this = $(this);
        if ($this.is(":checked")) {
            $("#select-" + x).prop('disabled', false);
        } else {
            $("#select-" + x).prop('disabled', true);
        }
    });
});

我希望当我选中编程复选框时,编程选择选项(复选框旁边)已启用。以及当我选中 web dev 复选框时,web dev 选择选项已启用。但是我的代码不起作用。谁能帮帮我?

最佳答案

最好使用类而不是带有随机数的 ID。 我会给我所有的复选框赋予类“box”和 id 1、2、3 等等。

此外,我认为 $this 不起作用。它必须是 $(this)

然后你的代码看起来像(工作示例):

$(document).ready(function(){
    $('.box').click(function(){
        var x= $(this).attr("id");
        if ($(this).is(":checked")) {
            $("#select-" + x).prop('disabled', false);
        } else {
            $("#select-" + x).prop('disabled', true);
        }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="type" value="program" class="box" id="1" /> Desktop Programming
<select name="lang-1" id="select-1" disabled>
    <option value="c">C/C++</option>
    <option value="vb">VB</option>
    <option value="cs">C#</option>
</select><br /><br />

<input type="checkbox" name="type" value="web" class="box" id="2" /> Web Development
<select name="lang-2" id="select-2" disabled>
    <option value="asp">ASP</option>
    <option value="php">PHP</option>
    <option value="ror">Ruby on Rails</option>
</select><br /><br />

关于javascript - jQuery 复选框自动禁用和重新启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34958492/

相关文章:

javascript - 用负数格式化货币

javascript - 当我用 jquery 在可编辑的 div 中写入时的实时样式

jquery - Bootstrap页面加载进度条动画

javascript - 将请求从 https 发送到 chrome 扩展的 http

javascript - 如何在着陆页菜单上制作 jQuery 从上到下滚动和从下到上慢速动画

html - 底部 body 上的盒子阴影

javascript - jquery 添加新的复选框,当点击新的复选框时,它什么也没有发生

javascript - jQuery UI,滑出一个Div,滑入Next

javascript - 使用 requestAnimationFrame 创建无限事件循环是否有性能成本

php - 创建自定义 PHP 语法分析器