[英]check radio button when all checkboxes are false
当所有元素“复选框”都未选中时,我需要将单选按钮(“ no_subscribe”)设置为true。 取消选中所有这些复选框后,应该会发生这种情况。 如果在其他地方问过我,请原谅我。 我一般不熟悉JavaScript和编程,因此对您的帮助非常感谢! 我已经能够使“订阅”按钮执行我想要的操作,但是我无法弄清楚相反的情况。 这些位于称为“邮件程序”的表格中。 我最近删除了我所做的尝试。 他们没有工作,所以很抱歉,没有代码可进行故障排除。
<fieldset>
Subscribe to our Mailing List?
<input type = "radio" name = "yes" id = "subscribe" onclick = "subscribe_to_all();" value = "yes" />Yes
<input type = "radio" name = "no" id = "no_subscribe" onclick = "subscribe_to_none();" value = "no" />No
</fieldset>
<fieldset name = "subscribe">
<legend>Mailing List Subscriptions</legend>
<input type="checkbox" id = "c1" name="subscriptions" onclick = "radio_yes();" value="CorporateEmails"/>
Corporate Press Release Emails<br />
<input type="checkbox" id = "c2" name="subscriptions" onclick = "radio_yes();" value="SoftwareAdvertising"/>
Upgrade Software Advertising List<br />
<input type="checkbox" id = "c3" name="subscriptions" onclick = "radio_yes();" value="PostBuyoutSpammers"/>
List given to spammers after buyout<br />
<input type="checkbox" id = "c4" name="subscriptions" onclick = "radio_yes();" value="NonCynical"/>
The only non-cynical list<br />
<input type="checkbox" id = "c5" name="subscriptions" onclick = "radio_yes();" value="SelltoSpammers"/>
List to sell to spammers<br />
<input type="checkbox" id = "c6" name="subscriptions" onclick = "radio_yes();" value="SpamList"/>
Spam List<br />
外部javascript文件:
function subscribe_to_all() {
for (i = 0; i < document.mailer.subscriptions.length; i++) {
document.mailer.subscriptions[i].checked = true;
}
}
function subscribe_to_none() {
for (i = 0; i < document.mailer.subscriptions.length; i++) {
document.mailer.subscriptions[i].checked = false;
}
}
function radio_yes() {
document.getElementById("subscribe").checked = true;
}
通过使用jQuery,您可以通过以下方法解决此问题:
将class="subscriptions"
属性放入所有复选框。
$('.subscriptions').change(function() {
var allUncheck = true;
$('.subscriptions').each(function() {
if ($(this).is(':checked')) allUncheck = false;
});
if (allUncheck == true) {
$('#no_subscribe').attr('checked', 'true');
} else {
$('#no_subscribe').attr('checked', false);
}
});
我使用了一个新功能。 尚未优化。 我使用了一个新功能。 在那里您可以循环获取复选框状态。 但是我的代码有效。 只需复制并粘贴即可查看更改
<script type="text/javascript">
function subscribe_to_all() {
for (i=0;i<document.mailer.subscriptions.length;i++){
document.mailer.subscriptions[i].checked = true;
}
}
function subscribe_to_none() {
for (i=0;i<document.mailer.subscriptions.length;i++){
document.mailer.subscriptions[i].checked = false;
}
}
function radio_yes() {
document.getElementById("subscribe").checked = true;
}
function radio_uncheck()
{
c1=document.getElementById("c1").checked;
c2=document.getElementById("c2").checked;
c3=document.getElementById("c3").checked;
c4=document.getElementById("c4").checked;
c5=document.getElementById("c5").checked;
c6=document.getElementById("c6").checked;
console.log(c1);
if(c1==false && c2==false && c3==false && c4==false && c5==false && c6==false)
{document.getElementById("subscribe").checked=false;}
//document.getElementById("subscribe").checked=false;
}
</script>
<fieldset>
Subscribe to our Mailing List?
<input type = "radio" name = "yes" id = "subscribe" onclick = "subscribe_to_all();" value = "yes" />Yes
<input type = "radio" name = "no" id = "no_subscribe" onclick = "subscribe_to_none();" value = "no" />No
</fieldset>
<fieldset name = "subscribe">
<legend>Mailing List Subscriptions</legend>
<input type="checkbox" id = "c1" name="subscriptions" onclick = "radio_yes();radio_uncheck();" value="CorporateEmails"/>
Corporate Press Release Emails<br />
<input type="checkbox" id = "c2" name="subscriptions" onclick = "radio_yes();radio_uncheck();" value="SoftwareAdvertising"/>
Upgrade Software Advertising List<br />
<input type="checkbox" id = "c3" name="subscriptions" onclick = "radio_yes();radio_uncheck();" value="PostBuyoutSpammers"/>
List given to spammers after buyout<br />
<input type="checkbox" id = "c4" name="subscriptions" onclick = "radio_yes();radio_uncheck();" value="NonCynical"/>
The only non-cynical list<br />
<input type="checkbox" id = "c5" name="subscriptions" onclick = "radio_yes();radio_uncheck();" value="SelltoSpammers"/>
List to sell to spammers<br />
<input type="checkbox" id = "c6" name="subscriptions" onclick = "radio_yes();radio_uncheck();" value="SpamList"/>
Spam List<br />
可以使用jquery解决。 第一个字段集中的单选按钮应该具有相同的名称值...我已经在您的代码上尝试过此操作。 只是检查出来。 我为该字段集添加了ID“搜索” ...
$(function() {
$('#search input:checkbox').click(function() {
var classes = $('#search input:checkbox:checked');
if(classes.length == 0)
{
$('input:radio[name=no]:nth(1)').attr('checked',true);
}
else
{
$('input:radio[name=no]:nth(1)').attr('checked',false);
}
});
});
这是工作中的小提琴。 http://jsfiddle.net/NBCX8/4/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.