所以问题是:我有 6 对单选按钮,每个按钮代表一个“是/否”语句。
我还4 read-only
输入了(1 or 0)
在用户选择radio
按钮组合后需要为其分配值的字段。
问题是有赋值规则:
如果(question 1)
OR(question 2)
是“yes”
-> combi(1) =1, combi(2, 3, 4)=0
(这很简单。我的代码有效)
如果(question 3)
OR (question 4)
OR(question 5)
是“yes”
-> combi(2) =1, combi(1,2,4)=0
(这很简单。我的代码有效)
如果(question 1) AND [(question 2) OR (question 3) OR (question 4)]
是“yes”
-> combi(3)=1, combi(1,2,4)=0
(这是问题 1)
如果(question 1) AND [(question 2) OR (question 3) OR (question 4)] AND (question 5)
是“yes”
-> combi(4)=1, combi(1,2,3)=0
(这是问题 2)
如果(question 1,2,3,4,5)
是NO
-> combi(1,2,3,4)=0
。(这很容易。我的代码有效)。
问题短期-我需要做一个AND
和OR
选择的JQuery
基础上,选择按钮。所以这是我的代码。我认为第三和第四“else if”
选择错误
Question 1
<input id="q1a" type="radio" name="q1"> yes
<input id="q1b" type="radio" name="q1"> no
<br/>
Question 2
<input id="q2a" type="radio" name="q2"> yes
<input id="q2b" type="radio" name="q2"> no
<br/>
Question 3
<input id="q3a" type="radio" name="q3"> yes
<input id="q3b" type="radio" name="q3"> no
<br/>
Question 4
<input id="q4a" type="radio" name="q4"> yes
<input id="q4b" type="radio" name="q4"> no
<br/>
Question 5
<input id="q5a" type="radio" name="q5"> yes
<input id="q5b" type="radio" name="q5"> no
<br/>
Question 6
<input id="q6a" type="radio" name="q6"> yes
<input id="q6b" type="radio" name="q6"> no
<br/>
<input id="combi1" type="text" readonly="true">Combi1<br/>
<input id="combi2" type="text" readonly="true">Combi1<br/>
<input id="combi3" type="text" readonly="true">Combi1<br/>
<input id="combi4" type="text" readonly="true">Combi1<br/>
JQuery
$('input').click(function(e){
if ($('#q1a').is(':checked') ||
$('#q2a').is(':checked')){
$('#combi1').val(1) &&
$('#combi2').val(0) &&
$('#combi3').val(0) &&
$('#combi4').val(0);
}
else if ($('#q3a').is(':checked') ||
$('#q4a').is(':checked') ||
$('#q5a').is(':checked')){
$('#combi1').val(0) &&
$('#combi2').val(1) &&
$('#combi3').val(0) &&
$('#combi4').val(0);
}
else if ($('#q1a').is(':checked') &&
$('#q3a').is(':checked') ||
$('#q4a').is(':checked') ||
$('#q5a').is(':checked')){
$('#combi1').val(0) &&
$('#combi2').val(0) &&
$('#combi3').val(1) &&
$('#combi4').val(0);
}
else if ($('#q1a').is(':checked') &&
$('#q3a').is(':checked') ||
$('#q4a').is(':checked') ||
$('#q5a').is(':checked') &&
$('#q6a').is(':checked')) {
$('#combi1').val(0) &&
$('#combi2').val(0) &&
$('#combi3').val(0) &&
$('#combi4').val(1);
}
else if ($('#q1b').is(':checked') &&
$('#q2b').is(':checked') &&
$('#q3b').is(':checked') &&
$('#q4b').is(':checked') &&
$('#q5b').is(':checked')){
$('#combi1').val(0) &&
$('#combi2').val(0) &&
$('#combi3').val(0) &&
$('#combi4').val(0);
}
})
我解决!方法如下:首先,我确实修改了逻辑,记住|| 停在第一个真正的声明和&&在第一虚列停止-这意味着我把最复杂的组合作为第一位的if / else序列和最简单的去年。然后我按照jmcgriz的建议添加了一个额外的括号来组合 && 和 || 适当地。现在它起作用了!
这是工作代码。如果有人有更好或更短的版本,我会为它打开!!!
$('input').click(function(e){
if ($('#q1a').is(':checked') &&
$('#q6a').is(':checked') &&
($('#q3a').is(':checked') ||
$('#q4a').is(':checked') ||
$('#q5a').is(':checked'))) {
$('#combi1').val(0) &&
$('#combi2').val(0) &&
$('#combi3').val(0) &&
$('#combi4').val(1);
}
else if (($('#q1a').is(':checked')) &&
($('#q3a').is(':checked') ||
$('#q4a').is(':checked') ||
$('#q5a').is(':checked'))){
$('#combi1').val(0) &&
$('#combi2').val(0) &&
$('#combi3').val(1) &&
$('#combi4').val(0);
}
else if ($('#q3a').is(':checked') ||
$('#q4a').is(':checked') ||
$('#q5a').is(':checked')){
$('#combi1').val(0) &&
$('#combi2').val(1) &&
$('#combi3').val(0) &&
$('#combi4').val(0);
}
else if ($('#q1a').is(':checked') ||
$('#q2a').is(':checked')){
$('#combi1').val(1) &&
$('#combi2').val(0) &&
$('#combi3').val(0) &&
$('#combi4').val(0);
}
else {
$('#combi1').val(0) &&
$('#combi2').val(0) &&
$('#combi3').val(0) &&
$('#combi4').val(0);
}
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句