我有一个我的单选按钮的javascript代码。我的页面有三行,每行有三个不同的单选按钮。我想提出的是当用户点击第1行中的单选按钮时控制第2行和第3行中的radiobuttons的方法,如:
$('.Session').click(function(){
if(this.value == 'One1' && this.checked){
console.log($('input[value=One2], input[value=One3'));
$('input[value=One2], input[value=One3]').prop('disabled', true);
}
else if(this.value == 'One2' && this.checked){
$('input[value=One1], input[value=One3]').prop('disabled', true);
}
else if(this.value == 'One3' && this.checked){
$('input[value=One1], input[value=One2]').prop('disabled', true);
}
else if(this.value == 'Bk1' && this.checked){
$('input[value=Bk2], input[value=Bk3]').prop('disabled', true);
}
else if(this.value == 'Bk2' && this.checked){
$('input[value=Bk1], input[value=Bk3]').prop('disabled', true);
}
else if(this.value == 'Bk3' && this.checked){
$('input[value=Bk1], input[value=Bk2]').prop('disabled', true);
}
else if(this.value == 'Test1' && this.checked){
$('input[value=Test2], input[value=Test3]').prop('disabled', true);
}
else if(this.value == 'Test2' && this.checked){
$('input[value=Test1], input[value=Test3]').prop('disabled', true);
}
else if(this.value == 'Test3' && this.checked){
$('input[value=Test1], input[value=Test2]').prop('disabled', true);
}
else{
$('.Session').not(this).prop('checked', false).prop('disabled', false);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<label> Line 1 </label>
<div class="input-group">
<input name="session1" class="Session" type="radio" value="Bk1">1
<input name="session1" class="Session" type="radio" value="One1">2
<input name="session1" class="Session" type="radio" value="Test1">3
</div>
<label> Line 2 </label>
<div class="input-group">
<input name="session2" class="Session" type="radio" value="Bk2">1
<input name="session2" class="Session" type="radio" value="One2">2
<input name="session2" class="Session" type="radio" value="Test2">3
</div>
<label> Line 3 </label>
<div class="input-group">
<input name="session3" class="Session" type="radio" value="Bk3">1
<input name="session3" class="Session" type="radio" value="One3">2
<input name="session3" class="Session" type="radio" value="Test3">3
</div>
答案 0 :(得分:0)
您可以使用index
所选广播,disable
所有其他radio
使用相同的索引,请查看以下示例。
希望这有帮助。
$('.Session').click(function(){
var checkbox_index = $(this).index();
$('.input-group').each(function(){
$('input:eq('+checkbox_index+')', this).prop('disabled',true);
})
$(this).prop('disabled',false);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<label> Line 1 </label>
<div class="input-group">
<input name="session1" class="Session" type="radio" value="Bk1">1
<input name="session1" class="Session" type="radio" value="One1">2
<input name="session1" class="Session" type="radio" value="Test1">3
</div>
<label> Line 2 </label>
<div class="input-group">
<input name="session2" class="Session" type="radio" value="Bk2">1
<input name="session2" class="Session" type="radio" value="One2">2
<input name="session2" class="Session" type="radio" value="Test2">3
</div>
<label> Line 3 </label>
<div class="input-group">
<input name="session3" class="Session" type="radio" value="Bk3">1
<input name="session3" class="Session" type="radio" value="One3">2
<input name="session3" class="Session" type="radio" value="Test3">3
</div>
&#13;
答案 1 :(得分:0)
使用html&#39; data attributes是最快的方法。只需为每种按钮添加一个具有唯一名称和值的数据属性(例如&#34;一个&#34;,&#34;两个&#34;,&#34;三个&#34;)并使用它来选择按钮(你也可以使用数据属性和类,但如果你不需要在那些按钮上运行任何其他东西,那么唯一的专业就是略微提高了可读性)。
$('.Session').click(function(){
if(this.checked){
var clicked = $(this);
var position = clicked.data('radio-position');
$('.input-group input').prop('disabled',false);
$('.input-group').find('[data-radio-position=' + position + ']').each(function(radio){
if(radio != clicked){
$(radio).prop('disabled', true);
$(radio).prop('checked', false);
}
});
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<label> Line 1 </label>
<div class="input-group">
<input name="session1" class="Session" type="radio" data-radio-position="one" value="Bk1">1
<input name="session1" class="Session" type="radio" data-radio-position="two" value="One1">2
<input name="session1" class="Session" type="radio" data-radio-position="three" value="Test1">3
</div>
<label> Line 2 </label>
<div class="input-group">
<input name="session2" class="Session" type="radio" data-radio-position="one" value="Bk2">1
<input name="session2" class="Session" type="radio" data-radio-position="two" value="One2">2
<input name="session2" class="Session" type="radio" data-radio-position="three" value="Test2">3
</div>
<label> Line 3 </label>
<div class="input-group">
<input name="session3" class="Session" type="radio" data-radio-position="one" value="Bk3">1
<input name="session3" class="Session" type="radio" data-radio-position="two" value="One3">2
<input name="session3" class="Session" type="radio" data-radio-position="three" value="Test3">3
</div>
&#13;