Javascript 选中复选框时使用jQuery更改下拉菜单
我对如何处理这个问题有点困惑。当前,当用户从下拉列表中更改数量时,它会检查复选标记,但当其移动到零时,复选标记将被取消选中Javascript 选中复选框时使用jQuery更改下拉菜单,javascript,jquery,html,Javascript,Jquery,Html,我对如何处理这个问题有点困惑。当前,当用户从下拉列表中更改数量时,它会检查复选标记,但当其移动到零时,复选标记将被取消选中 var val = 0 $('.drop').on('change',function() { var val = $(this).val(); if(val > 0) { var product = $(this).attr("prodindex"); $('#switchName' + product).prop('ch
var val = 0
$('.drop').on('change',function() {
var val = $(this).val();
if(val > 0) {
var product = $(this).attr("prodindex");
$('#switchName' + product).prop('checked', true);
}
else {
var product = $(this).attr("prodindex");
$('#switchName' + product).prop('checked', false);
}
});
表格的一部分:
<input class='check' id='switchName0' type='checkbox'>
<label for='switchName0'></label>
</div>
<div class='col-lg-8'>
<input id="order_products__product_id" name="order_products[][product_id]" type="hidden" value="4" />
test
<br>
<div class='subheader'>$22.00</div>
</div>
<div class='col-lg-2'>
<select class="drop" data-cost-per-unit="2200" id="test" name="order_products[][quanity]" prodindex="0"><option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option></select>
</div>
</div>
</div>
</div>
</div>
我想这样做,如果没有选中复选标记,你选中它,它会将数量更改为1,如果你取消选中它,它会变为零。但是因为我这里有另一个jquery,如果我使用$'.checkbox',在'change',function{}上,每次移动下拉列表时,它都会改变。这个问题有什么更好的解决方案?根据我对您的小提琴的测试,下面的代码似乎可以工作。复选框和选择框都会相互影响。正如您的代码所提示的,此代码假设所有复选框都有一个switchName形式的id,其中是一个数字 不要忘记更改实际代码上的10 switchName长度以匹配您的ID
var $drops = $('.drop');
$('.check').on('change', function() {
var val = $(this).prop('checked'),
product = this.id.slice(10);
$drops.filter(function (i, e) {
return $(this).attr('prodindex') == product;
}).val(val ? '1' : '0');
});
$drops.on('change',function() {
var val = +(this.value),
product = $(this).attr("prodindex");
$('#switchName' + product).prop('checked', val > 0);
});
你能给我一把小提琴吗?我有点困惑。是否希望复选框更改选项、更改复选框的选项或两者都更改?单击复选框时,我希望复选框将下拉列表的值更改为1。但我仍然希望在从下拉列表中选择选项时选中它。因此,如果下拉列表为0,并单击复选框,则下拉列表值将更改为1。在此之后,如果您向下拉列表中添加更高的值,它将保持选中状态,除非其为0。谢谢,如果我有10个以上的产品,我该如何执行此操作?我的身份证会跳到两位数。加载页面时,总有不同数量的开关。@TuxedoTomson我考虑过这种情况。这就是我用这个的原因。它获取从索引10开始的子字符串,数字从索引10开始,直到字符串的结尾,无论有多少个数字。你也可以有上千种产品,代码都是一样的,不需要修改。