-1

我正在尝试查看单选按钮中选择的值。表格是:

<form onsubmit="return false;">

<fieldset>
<h3>Textos</h3>
<label>Nombre:</label>
<input type="text" name="nombre"/>
    <label>Apellido:</label>
    <input type="text" name="apellido" />
    <label>Contraseña:</label>
    <input type="password" name="contrasena" />
    <div class="limpia"></div>
</fieldset>
<fieldset>
<h3>Gustos musicales:</h3>
    <label>POP <input type="checkbox" name="pop" value="POP" class="gmusicales"    
    /></label>
    <label>ROCK <input type="checkbox" name="rock" value="ROCK" class="gmusicales"  
    /></label>
    <label>HIP-HOP <input type="checkbox" name="hiphop" value="HIP-HOP"  
    class="gmusicales" 
    /></label>
    <label>METAL <input type="checkbox" name="metal" value="METAL" class="gmusicales" 
    /></label>
    <div class="limpia"></div>
</fieldset>
<fieldset>
<h3>Sistema operativo</h3>
    <label>Windows <input type="radio" name="SO" value="Windows" class="soperativo"/> 
    </label>
    <label>Linux <input type="radio" name="SO" value="Linux" class="soperativo"/> 
    </label>
    <label>Mac <input type="radio" name="SO" value="Mac" class="soperativo"/></label>
    <div class="limpia"></div>
</fieldset>
<fieldset>
    <input type="reset" value="Borrar"/>
    <input type="submit" onclick=muestra() value="Probar" />
    <div class="limpia"></div>
</fieldset>

</form>

问题出在我的javascript代码中:

var nom;
var ape;
var con;
var gustos = document.getElementsByClassName("gmusicales");
var sistema = document.getElementById("soperativo");
var resultado;
var i;
var h2 = document.createElement("h2");

function muestra()
{
nom = document.forms[0].elements.nombre.value;
ape = document.forms[0].apellido.value;
con = document.forms[0].contrasena.value;
resultado = nom + " " + ape + " " + con;

for(i=0; i<=gustos.length; i++)
  {
    if (gustos[i].checked)
      {
        resultado = resultado + " " + gustos[i].value;
        alert(resultado);
      }
  } 

  for(i=0; i<=sistema.length; i++)
  {
    if (sistema[i].checked)
      {
        resultado = resultado + " " + sistema[i].value;
        alert(resultado);
      }
  }

document.body.appendChild(h2); 
document.h2.appenChild(resultado);  

}

我想要的是查看 sistema operativo 字段集的值。您只能选择一个。当我选择它时,我什么都看不到。当我选择另一个复选框时,我可以查看值。我想创建一个 h2 html 标记并打印这些值。

我该怎么做?

谢谢。

4

2 回答 2

0

我知道这是一个纯 Javascript 问题.. 但是你没有在问题中指定你想要纯 Javascript 的解决方案,这是我在 jQuery 中的解决方案:

$(document).ready(function(){
    $('input[type=submit]').click(function(){
        $('#resultado').val($('.soperativo:checked').val());
        return false;
    });
});

http://jsfiddle.net/h9GJa/

更容易,你不觉得吗?

于 2013-09-27T19:16:24.193 回答
0

一开始你写:

var sistema = document.getElementById("soperativo");

如果有的话,那会给你一个单一的元素(uno solo)。但是在您的代码中,我可以看到您有带有class soperativo的元素,而不是id soperativo

使用它而不是上面的行:

var sistema = document.getElementsByClassName("soperativo");
于 2013-09-27T18:29:09.277 回答