好的我一直在为WordPress构建这个营养插件,试图找到一个解决方案,这个简单的任务,几行js应该工作....只是取消其他复选框当一个被检查。取消勾选其他复选框,当选中一个时
我有4个输入的嵌套div的按本:
<div class="nutrition-mc-group nutrition-mc-group-activity-level">
<div class="nutrition-mc-selection-box">
<div class="nutrition-mc-checkbox-outter">
<input type="checkbox" id="squared-checkbox1">
<label class="nutrition-mc-checkbox" id="mc-sedentary-select" for="squared-checkbox1"></label>
</div>
<p class="nutrition-mc-notes nutrition-mc-notes-switch">Sedentary</p>
<p class="nutrition-mc-description">Typical desk job/Sitting most of the day</p>
</div>
<div class="nutrition-mc-selection-box">
<div class="nutrition-mc-checkbox-outter">
<input type="checkbox" id="squared-checkbox2">
<label class="nutrition-mc-checkbox" id="mc-lightly-active-select" for="squared-checkbox2"></label>
</div>
<p class="nutrition-mc-notes nutrition-mc-notes-switch">Lightly Active </p>
<p class="nutrition-mc-description">Walking around a good amount, retail jobs</p>
</div>
<div class="nutrition-mc-selection-box">
<div class="nutrition-mc-checkbox-outter">
<input type="checkbox" id="squared-checkbox3">
<label class="nutrition-mc-checkbox" id="mc-moderately-active-select" for="squared-checkbox3"></label>
</div>
<p class="nutrition-mc-notes nutrition-mc-notes-switch">Moderately Active</p>
<p class="nutrition-mc-description">Walking constantly in a fast paced environment, waiting tables</p>
</div>
<div class="nutrition-mc-selection-box">
<div class="nutrition-mc-checkbox-outter">
<input type="checkbox" id="squared-checkbox4">
<label class="nutrition-mc-checkbox" id="mc-vigorously-active-select" for="squared-checkbox4"></label>
</div>
<p class="nutrition-mc-notes nutrition-mc-notes-switch">Vigorously Active</p>
<p class="nutrition-mc-description">Very labor intensive, construction workers</p>
</div>
</div>
现在的JS是有一点不同,我试图简化它尽可能:
this.allActive = this.mod.find('.nutrition-mc-group-activity-level input');
_init: function(){
this.allActive.on('change', $.proxy(this._uncheckActivityBtn, this));
},
_uncheckActivityBtn: function(){
$(this.allActive).not(this).prop('checked', false);
},
它运行良好,但它像它不认识not(this)
部分参数。 如果我将.prop
更改为true
,它会更改参数,并在检查一个参数时检查所有输入。我不知道为什么它不理解this
参数的一部分,并且不排除当前选中的框。
我试图只移动一个函数中的所有内容,但是在执行调试时,输出给not(this)操作符提供了一个错误,并指出它没有被指定。
对于这种行为,它听起来像你只需要使用单选按钮,而不是复选框。当所有输入具有相同的'name'属性时,默认情况下会发生这种行为 –
是的......请使用单选按钮来执行此行为 –