jQuery 选择器或 'if' 麻烦
jQuery Selectors or 'if' trouble
此代码应禁止总共单击两个以上的单选按钮(此类按钮共有三组)。
这在没有容器时有效'label',但当它存在时,它不起作用(看起来像'if' 构造不起作用;在它之外编写的所有内容都可以正常工作)
如何在不去掉标签的情况下让它工作?有什么解决办法吗?
var radio_limit = 2;
$('.pricing-levels-3 label input').on('change', function(evt) {
if($(this).siblings(':checked').length >= radio_limit) {
this.checked = false;
};
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="pricing-levels-3">
<p><strong>Select 2 Levels</strong></p>
<label>
<input type="radio" name="vehicle" value="1">Level 1<br>
<input type="radio" name="vehicle" value="2">Level 2<br>
<input type="radio" name="vehicle" value="3">Level 3<br>
</label>
<label>
<br>
<input type="radio" name="vehicle2" value="1">Level 1<br>
<input type="radio" name="vehicle2" value="2">Level 2<br>
<input type="radio" name="vehicle2" value="3">Level 3<br>
</label>
<label>
<br>
<input type="radio" name="vehicle3" value="1">Level 1<br>
<input type="radio" name="vehicle3" value="2">Level 2<br>
<input type="radio" name="vehicle3" value="3">Level 3<br>
<br>
</label>
</div>
您正在寻找没有标签的兄弟姐妹。现在有了标签,他们不是兄弟姐妹,而是表亲。为了解决这个问题,我们使用 closest() 读取同一个 div 中的所有单选按钮。还可以使用 prop 来检查单选按钮。这样做:
var radio_limit = 2;
$('.pricing-levels-3 label input').on('change', function(evt) {
if($(this).closest('div').find('input:checked').length >= radio_limit) {
$(this).prop('checked', false);
};
});
此代码应禁止总共单击两个以上的单选按钮(此类按钮共有三组)。
这在没有容器时有效'label',但当它存在时,它不起作用(看起来像'if' 构造不起作用;在它之外编写的所有内容都可以正常工作)
如何在不去掉标签的情况下让它工作?有什么解决办法吗?
var radio_limit = 2;
$('.pricing-levels-3 label input').on('change', function(evt) {
if($(this).siblings(':checked').length >= radio_limit) {
this.checked = false;
};
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="pricing-levels-3">
<p><strong>Select 2 Levels</strong></p>
<label>
<input type="radio" name="vehicle" value="1">Level 1<br>
<input type="radio" name="vehicle" value="2">Level 2<br>
<input type="radio" name="vehicle" value="3">Level 3<br>
</label>
<label>
<br>
<input type="radio" name="vehicle2" value="1">Level 1<br>
<input type="radio" name="vehicle2" value="2">Level 2<br>
<input type="radio" name="vehicle2" value="3">Level 3<br>
</label>
<label>
<br>
<input type="radio" name="vehicle3" value="1">Level 1<br>
<input type="radio" name="vehicle3" value="2">Level 2<br>
<input type="radio" name="vehicle3" value="3">Level 3<br>
<br>
</label>
</div>
您正在寻找没有标签的兄弟姐妹。现在有了标签,他们不是兄弟姐妹,而是表亲。为了解决这个问题,我们使用 closest() 读取同一个 div 中的所有单选按钮。还可以使用 prop 来检查单选按钮。这样做:
var radio_limit = 2;
$('.pricing-levels-3 label input').on('change', function(evt) {
if($(this).closest('div').find('input:checked').length >= radio_limit) {
$(this).prop('checked', false);
};
});