2013-09-27 29 views
-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標籤並打印這些值。

我該怎麼辦?

謝謝。

+0

http://www.somacon.com/p143.php – cptnk

回答

0

起初你寫:

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

這會給你一個單一的元素(UNO獨奏),如果有任何。 但在您的代碼中,我可以看到您的元素具有soperativo,而不是IDsoperativo

使用這個代替上面的一行:

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

感謝您的回答。我改變了它,因爲你告訴我,但問題還沒有解決,我不知道爲什麼。 – axmug

+0

如何創建一個jFiddle? – mavrosxristoforos

+0

我試過了,但我獲得了同樣的結果。 – axmug

0

我知道,這是一個純JavaScript的問題..但是你怎麼沒在你想在純JavaScript解決問題的規定,這裏是我在jQuery的解決方案:

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

http://jsfiddle.net/h9GJa/

更多更易,你不覺得嗎?

+1

是的。但我正在學習純JavaScript。後來我會學習JQuery。 – axmug