我刚开始学习Javascript。对于初学者项目,我制作了一个测验指南,以找出你是哪个南方公园角色。但是我有一些问题让它起作用。以下是我的一些代码:
在我的HTML文档中,代码如下所示:
<form name="characterform">
<p>What kind of food do you like to eat?</p>
<ul>
<li><input type="radio" name="1" value="" id="radio11" />Pizza</li>
<li><input type="radio" name="1" value="" id="radio12" />Chips and snacks</li>
<li><input type="radio" name="1" value="" id="radio13" />Health foods</li>
<li><input type="radio" name="1" value="" id="radio14" />Kosher</li>
<li><input type="radio" name="1" value="" id="radio15" />Powdered donut pancake surprise</li>
<li><input type="radio" name="1" value="" id="radio16" />Anything, as long as it's cheap</li>
</ul>
<input type="button" name="button" value="Calculate" id="button" onClick="start()" />
</form>
在我的脚本文档中,我首先创建变量并使用if语句来更改它们,如下所示:
function start(){
if(document.characterform.radio11.checked)
cartman += 5;
kyle += 5;
stan += 5;
kenny += 5;
butters += 5;
最后,我使用if语句来获得结果:
if(cartman > kyle && cartman > stan && cartman > kenny && cartman > butters)
alert("Cartman! " + "\n" + cartman + "\n" + kyle + "\n" + stan + "\n" + kenny + "\n" + butters);
else if(kyle > cartman && kyle > stan && kyle > kenny && kyle > butters)
alert("Kyle! " + "\n" + cartman + "\n" + kyle + "\n" + stan + "\n" + kenny + "\n" + butters);
else if(stan > cartman && stan > kyle && stan > kenny && stan > butters)
alert("Stan! " + "\n" + cartman + "\n" + kyle + "\n" + stan + "\n" + kenny + "\n" + butters);
else if(kenny > cartman && kenny > stan && kenny > kyle && kenny > butters)
alert("Kenny! " + "\n" + cartman + "\n" + kyle + "\n" + stan + "\n" + kenny + "\n" + butters);
else
alert("Error");
我用所有的收音机按钮完成了这个。问题是无论选择哪个单选按钮,结果总是一样的:凯尔。事实上,在查看数字的打印时,似乎Cartman是唯一变化的变量。其他四个变量完全相同,无论如何,凯尔得分最多。
除了创建变量外,所有脚本代码都在start()函数中。
我已经搜索了很多答案,但我还没有找到任何有相同问题的人 - 所以我猜测那里是我问题的简单解决方案。我希望有人能帮助我理解这一点。
答案 0 :(得分:1)
在javascript if block中使用多行时,请使用...
if(document.getElementById('radio11').checked) {
cartman += 5;
kyle += 5;
stan += 5;
kenny += 5;
butters += 5;
}
请注意大括号...... {}
您可能还想进行此修改...
if((cartman > kyle) && (cartman > stan) && (cartman > kenny) && (cartman > butters))
alert("Cartman! " + "\n" + cartman + "\n" + kyle + "\n" + stan + "\n" + kenny + "\n" + butters);
...
...这将确保比较正确执行
答案 1 :(得分:0)
这不是访问元素的正确方法:
if(document.characterform.radio11.checked) //this assumes a form element named: radio11
因此,除了方括号之外,你应该检查一下:
if(document.getElementById('radio11').checked){ ... } //this assumes a form element with id: radio 11
答案 2 :(得分:0)
我认为你的逻辑应该与此类似。请记住,如果要在一个块中更改多个变量,需要使用大括号将它们包装在一起。
if(document.getElementById('radio11').checked) {
cartman += 5;
}
else if(document.getElementById('radio12').checked) {
kyle += 5;
}
else if(document.getElementById('radio13').checked) {
stan += 5;
}
else if(document.getElementById('radio14').checked) {
kenny += 5;
}
else if(document.getElementById('radio15').checked) {
butters += 5;
}