答案 0 :(得分:1)
有很多方法可以解决这个问题,但我建议将复选框的“类”设置为选项值。然后你可以像这样使用jQuery:
$("select[name='types']").change(function() {
// Get the value selected (convert spaces to underscores for class selection)
var value = $(this).val().replace(' ', '_');
// Clear checks, then check boxes that have class "value"
$(":checkbox").prop("checked",false).filter("."+value).prop("checked",true);
});
请参阅fiddle
答案 1 :(得分:0)
您可以开始使用change()
<select>
事件,然后再使用以下内容:
$('select').change(function(){
switch($(this).val()) {
case 'Wedding':
$('#checkbox').prop('checked', true);
break;
case 'Birthday':
// something
break;
}
});
答案 2 :(得分:0)
在某种程度上,如果修改标记以使复选框的名称等于选择值,则必须将复选框与选择列表值相关联
<select name="types">
<option value="Wedding">Wedding</option>
<option value="Birthday">Birthday</option>
<option value="Health Day">Health Day</option>
<option value="Custom Event">Custom</option>
</select>
<br/><br/><br/>
<fieldset>
<h3><span>1</span>Entertainment:</h3>
<input type="checkbox" name="Wedding" value="Wedding" /> DJ<br />
<input type="checkbox" name="Birthday" value="Birthday" /> Birthday<br />
</fieldset>
jquery part
$("select").change(function(e){
$(":checkbox").prop("checked",false); //de-select all the checkboxes
var v = $(this).val();
$(":checkbox[name='"+v+"']").prop("checked",true);
});
确定有多种方法可以实现此方案,但此演示将帮助您入门
答案 3 :(得分:0)
一种方法是使用custom data attribute: (data-*):
<select name="types">
<option value="">Select</option>
<option value="wedding">Wedding</option>
<option value="birthday">Birthday</option>
<option value="health_day">Health Day</option>
<option value="custom_event">Custom</option>
</select>
<input type="checkbox" name="entertainment" data-evt="custom_event" value="dj" /> DJ<br />
<input type="checkbox" name="entertainment" data-evt="birthday" value="Magician" /> Magician<br />
<input type="checkbox" name="entertainment" data-evt="custom_event" value="liveband" /> Live Music
...
jquery的
$('select').change(function(){
var $evt = $(this).val(); // get type of event
$(':input[type="checkbox"]').prop('checked', false); // clear
$(':input[data-evt="' + $evt + '"]').prop('checked', true); // Set check
});
答案 4 :(得分:0)
您必须以某种方式将复选框与每个下拉选项绑定。一种可能的解决方案是为每个选项添加data
属性,并根据该选项选择复选框。
<select name="types">
<option value="Wedding" data='dj,singer,wedding,lighting'>Wedding</option>
<option value="Birthday" data='singer,lighting'>Birthday</option>
<option value="Health Day" data='comedian,magician,outdoor'>Health Day</option>
<option value="Custom Event">Custom</option>
</select>
$('select').change(function () {
$('input:checkbox').attr('checked', false);
var arrData = $('option:selected', this).attr('data').split(',');
for (i in arrData) {
$("input[value='" + arrData[i] + "']").attr('checked', true);
}
}).change();