查看表单的选定值

时间:2013-09-27 17:24:35

标签: javascript html forms javascript-events

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

<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 fieldset的值。你只能选择一个。当我选择它时,我什么都看不到。当我选择另一个,这是一个复选框,我可以查看值。 我想创建一个h2 html标签并打印值。

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:0)

首先你写道:

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

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

使用此代替上面的行:

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

答案 1 :(得分:0)

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

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

http://jsfiddle.net/h9GJa/

更容易,你不觉得吗?