我有以下代码:
<fieldset id="dificuldade">
<legend>Dificuldade:</legend>
<input type="radio" name="dificuldade" value="facil"> Fácil </input>
<input type="radio" name="dificuldade" value="medio"> Médio </input>
<input type="radio" name="dificuldade" value="dificil"> Difícil </input>
</fieldset>
<fieldset id="tipo">
<legend>Tipo de jogo:</legend>
<input type="radio" name="Tipodejogo" value="somar"> Somar </input>
<input type="radio" name="Tipodejogo" value="subtrair"> Subtrair </input>
<input type="radio" name="Tipodejogo" value="dividir"> Dividir </input>
<input type="radio" name="Tipodejogo" value="multiplicar"> Multiplicar </input>
</fieldset>
<input type="button" value="Começa" id="button" ></input>
</form>
这里是包含html和js http://jsfiddle.net/3bc9m/15/的jsfiddle。我需要存储2字段集的值,所以我,根据所选的值可以生成一个游戏,但我的javascript没有返回它们中的任何一个。怎么了?我被告知JQuery更容易,但我无法使用它。
答案 0 :(得分:2)
你在jsFiddle上的代码似乎在大多数情况下工作正常。唯一的问题是页面上不存在元素output
和output2
。
因此,应该显示所选值的代码无效:
document.getElementById('output').innerHTML = curr.value;
document.getElementById('output2').innerHTML = tdj.value;
实际检索所选值的部分工作正常。
只需将这两个元素添加到页面中,如下所示:
<p>Selected Values:</p>
<div id="output"></div>
<div id="output2"></div>
可以找到更新的jsFiddle here。
修改强>
如果选择仅来自其中一个集合的单选按钮,则代码将失败。您可以使用此代码来查找所选值:
document.getElementById('button').onclick = function() {
var dif = document.getElementsByName('dificuldade');
var tip = document.getElementsByName('Tipodejogo');
var difValue;
for (var i = 0; i < dif.length; i++) {
if (dif[i].type === "radio" && dif[i].checked) {
difValue = dif[i].value;
}
}
var tipValue;
for (var i = 0; i < tip.length; i++) {
if (tip[i].type === "radio" && tip[i].checked) {
tipValue = tip[i].value;
}
}
document.getElementById('output').innerHTML = difValue;
document.getElementById('output2').innerHTML = tipValue;
};
更新的jsFiddle是here。
答案 1 :(得分:-1)
考虑一下解决这个问题的帖子。它显示了一些javascript方法以及如何在jQuery中使用它。
How can I check whether a radio button is selected with JavaScript?
是否有特定原因想要按字段集分解,而不是直接按名称访问单选按钮?