我有以下代码:
{{1}}
我正在寻找的是正确的javascript,如果选中“none”选项,则取消选中任何/所有其他选项 - 以确保人们无法选中和其他选项。我打算使用一个名为GDPRcheck()的函数来执行此操作。
答案 0 :(得分:1)
首先,您需要在this
函数中传递GDPRcheck
,以便可以在函数内引用所单击的元素,然后使用querySelectorAll
获取所有复选框。然后,设置uncheck
所有其他复选框的条件,但none
checked
复选框除外
function GDPRcheck(elem){
if(elem.value === 'none'){
document.querySelectorAll('[id^="gdpr"]').forEach(function(chkBox){
if(elem.checked && chkBox.value !== 'none'){
chkBox.checked = false;
}
});
} else {
var noneChkBox = document.getElementById('gdpr3');
if(noneChkBox.checked){
noneChkBox.checked = false;
}
}
}

<div class="formControls">
<label for="gdpr0" class="checkbox-inline">
<input type="checkbox" name="form[gdpr][]" value="email" id="gdpr0" onchange="GDPRcheck(this);" class="gdpr-option rsform-checkbox">By email</label>
<label for="gdpr1" class="checkbox-inline">
<input type="checkbox" name="form[gdpr][]" value="phone" id="gdpr1" onchange="GDPRcheck(this);" class="gdpr-option rsform-checkbox">By phone</label>
<label for="gdpr2" class="checkbox-inline">
<input type="checkbox" name="form[gdpr][]" value="post" id="gdpr2" onchange="GDPRcheck(this);" class="gdpr-option rsform-checkbox">By post</label>
<label for="gdpr3" class="checkbox-inline">
<input type="checkbox" name="form[gdpr][]" value="none" id="gdpr3" onchange="GDPRcheck(this);" class="gdpr-option rsform-checkbox">None</label>
<p class="formDescription">Please check all methods by which you are happy to be contacted.</p>
</div>
&#13;