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 函数调用脱糖

javascript - 如何检测/避免对我缓存的基于 React 的应用程序的更新?或者如何在缓存失效发生之前检测到它?

php - 无法将选择选项值放入 jQuery post 中

javascript - 使用 jQuery .attr 替换 href 链接

jquery - Bootstrap 中带页脚的全高侧边栏

javascript - 动态关闭 &lt;input&gt; 的自动填充菜单

javascript - 将字符串分成 n 个字符的 block 并应用替换

javascript - 从 Javascript 变量图像名称访问 Rails 4 指纹图像 Assets

javascript - 当 div 触摸浏览器顶部时添加类

php - 如何从数据库中查看任何特定项目的详细信息?