[英]Disable and enable next input field that is inside a div
选中或取消选中复选框后,如何在一个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小提琴在这里
您必须使用next('.box-2')
,然后找到input
。
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 el = $(this).next('.box-2').find('input');
if($(this).is(':checked')){
el.prop('disabled', false);
}
else{
el.prop('disabled', true);
}
});
});
工作示例: https : //jsfiddle.net/Lvf7znxm/4/
您需要使用next()
函数在复选框(在您的情况下为div)之后以及此div内部的find()
输入之后查找下一个元素。
$(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>
在您的情况下,您应该使用.next()。 .next()将获取下一个元素,您可以对该元素执行任何操作。
$('.box').click(function()
{
var set = $(this).is(':checked') ? false : true;
$(this).next('div.box-2').find('input').attr('disabled', set)
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.