我有一个复选框,表明用户想要晚餐。在此复选框下有几个单选按钮,用户可以从中选择他/她的晚餐选项。我正在寻找两件事发生......
1)每当用户“检查”他们想要晚餐时,我都会选择默认的晚餐选择选项。当用户“取消选中”晚餐选项时,我希望取消选择所有晚餐选项。所有这一切都工作正常,直到我尝试添加额外的 jQuery 选项。
2)如果用户选择晚餐选项,我希望有一个复选框来指示用户想要检查晚餐。最后一个选项似乎否定了第一个选项。
我创建了一个位于此处的 jsfiddle.net 示例... http://jsfiddle.net/ScEw2/1/
我还在这里粘贴了代码,例如......
HTML
<p><input type="checkbox" id="IsHavingDinner" name="Dinner" /> Do you want dinner?</p>
<hr />
<input type="radio" id="DinnerChoiceChicken" name="DinnerChoice" value="Chicken"> Chicken<br/>
<input type="radio" id="DinnerChoiceFish" name="DinnerChoice" value="Fish"> Fish<br/>
<input type="radio" id="DinnerChoiceSteak" name="DinnerChoice" value="Steak"> Steak<br/>
<input type="radio" id="DinnerChoiceVegan" name="DinnerChoice" value="Vegan"> Vegan<br/>
jQuery 代码
// Select default dinner option otherwise deselect all options
$('#IsHavingDinner').click(function(event) {
if ($('#IsHavingDinner').attr('checked')) {
// Select Dinner Choice Chicken by default
$('#DinnerChoiceChicken').attr('checked', 'checked');
} else {
// Deselect all Dinner Choices
$('input[name="DinnerChoice"]').attr('checked', false);
}
})
// If a dinner choice is selected, make sure the checkbox
// indicating they want dinner is selected
$('[name="DinnerChoice"]').click(function(event) {
$('#IsHavingDinner').attr('checked', 'checked');
})
如果用户取消选择晚餐,我无法确定为什么晚餐选项没有被取消选择。一项事件是否会取消另一项事件?有什么想法吗?
最佳答案
使用 JQuery 的 .change()
事件而不是 click()
。 click()
在复选框更改之前执行。
$('#IsHavingDinner').change(function(event) { ..
也可以使用prop()
而不是 JQuery 1.6+ 中的 attr()
。
关于jQuery - 选项按钮重置取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524770/