![](/img/trans.png)
[英]Using jquery to get values of radio buttons and display text depending on selection
[英]How to set a different values to an input fields after selecting a combination of radio buttons using AND and OR selection in JQuery?
所以問題是這樣的:我有6對單選按鈕,每個按鈕代表一個“是/否”聲明。
我還具有4 read-only
輸入字段,在用戶選擇radio
按鈕的組合之后,我需要為其分配一個值(1 or 0)
。
問題在於存在價值分配規則:
如果(question 1)
或(question 2)
為“yes”
-> combi(1) =1, combi(2, 3, 4)=0
(這很簡單。我的代碼有效)
如果(question 3)
或(question 4)
或(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
。 (這很簡單。我的代碼有效) 。
問題簡短-我需要根據所選按鈕在JQuery
進行AND
和OR
選擇。 這是我的代碼。 我認為第三和第四“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);
}
})
我解決了! 這是這樣的:首先我考慮到||的確修改了邏輯。 在第一個TRUE語句處 停止&&&在第一個FALSE語句處停止 -這意味着我將最復雜的組合放在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);
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.