Javascript 无线电元件的if/else条件问题

Javascript 无线电元件的if/else条件问题,javascript,if-statement,Javascript,If Statement,我不擅长Javascript,我正在尝试根据是非答案构建一个两个问题的测验。当我查看控制台时,如果我执行console.log(answer1+answer3),我会看到yes-no值;但是警报不起作用。如果我删除.checked并使其等于true/false,则第一个警报将工作 任何帮助都将不胜感激 var answer1 = document.getElementById('q1').value; var answer2 = document.getElementById('q2').val

我不擅长Javascript,我正在尝试根据是非答案构建一个两个问题的测验。当我查看控制台时,如果我执行console.log(answer1+answer3),我会看到yes-no值;但是警报不起作用。如果我删除.checked并使其等于true/false,则第一个警报将工作

任何帮助都将不胜感激

var answer1 = document.getElementById('q1').value;
var answer2 = document.getElementById('q2').value;
var answer3 = document.getElementById('q3').value;
var answer4 = document.getElementById('q4').value;


if (answer1.checked && answer3.checked) {
alert('walking park');

}
else if (answer1.checked && answer4.checked) {
alert('no walk in park');
}
else if (answer2.checked && answer4.checked ) {
alert('oh noooo!');
}
else if (answer2.checked && answer3.checked) {
alert('cor blimey gov!');
}


<form>
   <p>Question 1</p>
   <fieldset>
   <label for="Question1">Can your dog eat food?</label>
   <input type="radio" id="q1" name="question1" value="yes"> Yes<br>
   <input type="radio" id="q2" name="question1" value="no"> No
   </fieldset>

   <p>Question 2</p>
   <fieldset>
   <label for="Question2">Can your dog run in the park</label>
   <input type="radio" id="q3" name="question2" value="yes"> Yes<br>
   <input type="radio" id="q4" name="question2" value="no"> No
   </fieldset>
   <button type="button" id="myBtn" class="btn btn-med btn-brand-one">submit</button>
 </form>
var answer1=document.getElementById('q1').value;
var answer2=document.getElementById('q2')。值;
var answer3=document.getElementById('q3')。值;
var answer4=document.getElementById('q4')。值;
如果(回答1.checked和回答3.checked){
警报(“步行公园”);
}
否则如果(回答1.checked和回答4.checked){
警报(“公园内禁止步行”);
}
else if(answer2.checked和answer4.checked){
警惕(‘哦,不!’);
}
else if(已选中回答2.checked&已选中回答3.checked){
警报('cor blimey gov!');
}
问题1

你的狗能吃东西吗? 是
不 问题2

你的狗能在公园里跑吗 是
不 提交
使用
checked==true
或简单地
checked
并删除
.value

answer1=document.getElementById('q1');
answer2=document.getElementById('q2');
answer3=document.getElementById('q3');
answer4=document.getElementById('q4');
功能检查(事件){
event.preventDefault()
如果(回答1.checked和回答3.checked){
警报(“步行公园”);
}
否则如果(回答1.已选中和回答4.已选中){
警报(“公园内禁止步行”);
}
else if(answer2.checked和answer4.checked){
警惕(‘哦,不!’);
}
else if(已选中回答2.checked&已选中回答3.checked){
警报('cor blimey gov!');
}
}

问题1

你的狗能吃东西吗? 是
不 问题2

你的狗能在公园里跑吗 是
不 提交
问题在于复选框的
.value
是字符串
“yes”
“no”
。字符串未选中
属性

解决方案:只需删除
.value
部分即可。让
answer1
answer2
等作为输入元素本身。然后您可以对它们使用
。checked

例如:

document.getElementById('myBtn')。onclick=function(){
var answer1=document.getElementById('q1');
var answer2=document.getElementById('q2');
var answer3=document.getElementById('q3');
var answer4=document.getElementById('q4');
如果(回答1.checked和回答3.checked){
警报(“步行公园”);
}否则如果(回答1.checked和回答4.checked){
警报(“公园内禁止步行”);
}else if(已勾选回答2.checked和回答4.checked){
警惕(‘哦,不!’);
}else if(已选中回答2.checked&已选中回答3.checked){
警报('cor blimey gov!');
}
};

问题1

你的狗能吃东西吗? 是
不 问题2

你的狗能在公园里跑吗 是
不 提交
浏览器可能已禁用这些警报。尝试使用其他浏览器或匿名窗口。如果
console.log
正在工作,那么
警报
应答1
应该是
'yes'
'no'
,因为这是单选按钮的值。你实际上是在做
“是”。选中了
,这是毫无意义的。那么,如果选中了每个单选按钮,我如何让它运行警报,基于问题1和问题2,你为什么要写
==true
answer1.checked==true
answer1.checked
与问题1.checked
是一样的,而不是matherSo为什么你说这是解决方案,好像它起了作用?当我删除值并运行console.log(answer1+answer3);我返回[object HTMLInputElement][object HTMLInputElement]@Tyrone您想要控制台。记录检查的answear的值?