jQuery - 选项按钮重置取消

标签 jquery checkbox radio-button

我有一个复选框,表明用户想要晚餐。在此复选框下有几个单选按钮,用户可以从中选择他/她的晚餐选项。我正在寻找两件事发生......

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/

相关文章:

javascript - 选择后回到默认语句?

jquery - 在提交表单时调用js函数并阻止ajax请求完成后提交表单

javascript - 保存变量,特别是保存到 jQuery 中递增的 div 中?

javascript - 需要使用 jquery 为两组不同的复选框设置单独的单击事件。

javascript - 单选按钮 - 未选择任何选项

javascript - 如何在 JavaScript 中将 AJAX 函数内的值返回给父级?

javascript - 如何在重新加载页面时显示所有选中的复选框?

javascript - Angular 2中的多个复选框

php - 单选按钮选中的属性

javascript - Jquery 更改输入单选按钮状态