javascript - 禁用和启用 div 内的下一个输入字段

标签 javascript jquery html

选中或取消选中复选框后,如何启用和禁用一个 div 内的下一个输入?
我正在尝试使用 jQuery nextAll,但是如果 div 涉及元素,则这不起作用。我的 HTML:

<input class='box' type='checkbox'/>Option - 
<div class='box-2' style='display: inline-block'>
    Quantity <input type='number' disabled/>
</div>
<input class='box' type='checkbox'/>Option 2 - 
<div class='box-2' style='display: inline-block'>
    Quantity <input type='number' disabled/>
</div>

我实际上正在尝试使用以下 jQuery:

$(document).ready(function()
{
    $('.box').change(function()
    {
        var set =  $(this).is(':checked') ? false : true;
        $(this).nextAll('div.box-2 input').first().attr('disabled', set);
    });
});

我知道出了问题,但我无法让它发挥作用。 JS Fiddle here

最佳答案

您需要使用next()函数在复选框(在您的情况下为 div)之后查找下一个元素,然后 find()在这个div内输入。

$(document).ready(function()
{
    $('.box').click(function()
    {
        var set =  $(this).is(':checked') ? false : true;
        $(this).next('div.box-2').find('input').attr('disabled', set)
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class='box' type='checkbox'/>Option - 
<div class='box-2' style='display: inline-block'>
    Quantity <input type='number' disabled/>
</div>
<input class='box' type='checkbox'/>Option 2 - 
<div class='box-2' style='display: inline-block'>
    Quantity <input type='number' disabled/>
</div>

关于javascript - 禁用和启用 div 内的下一个输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39107404/

相关文章:

javascript - jQuery 在触摸屏中点击和滑动

javascript - 使用 jquery 加载隐藏的 div - 检测哪个 div

html - 图像链接不会出现在 Firefox 上

JavaScript/Jest : How to show logs from test case only when test fails?

javascript - 单击事件在触发一次 Backbone js 后停止工作

Javascript 循环遍历 JSON 对象

html - 使左对齐的div占据所有空间

javascript - 使用 Angular 2 进行子路由

javascript - 事件类不显示

css - 如何在将 svg 的一部分保持在固定位置的同时滚动 d3 元素?