2011-10-14 7 views
0

Lors de la soumission de mon formulaire, les boutons radio ne donnent pas "coché" quand ils sont cochés. La forme fonctionne bien autrement mais je ne peux pas obtenir une valeur des boutons. Des suggestions sur le code actuel?Bouton radio coché

<form action="" method="post" id="termCloudForm"> 
    <nobr> 
     Slot: 
     <input type="text" name="Slot" size="6" 
      <% If Request.Form("Slot") <> "" Then Response.Write(" value=""" & Request.Form("Slot") & """") %> 
     /> 
    </nobr> 
    <nobr> 
     Date: 
     <input type="text" name="Date" size="6" 
      <% If Request.Form("Date") <> "" Then Response.Write(" value=""" & Request.Form("Date") & """") %> 
     /> 
    </nobr> 
    <nobr> 
     <input type="radio" id="radio_button_1" name="radio_button" value="1" /> 
     rad1  
    </nobr> 
    <nobr> 
     <input type="radio" id="radio_button_2" name="radio_button" value="2" /> 
     rad2 
    </nobr> 
<input type="submit" name="action" value="Submit" /> 
</form> 

et la partie javascript où je l'ai récupérée a été considérablement simplifiée pour vérifier simplement si elle a été reçue. Je pense que forçant en javascript pour le termcloud est où je reçois des erreurs, mais je ne suis pas sûr d'où.

function initTermCloud() { 
var myForm = document.getElementById("termCloudForm"); 
var slot = myForm.elements["Slot"].value; 
var date = myForm.elements["Date"].value; 
var url = encodeURI('http://TermCloudJSON2Local.asp?Slot=' + slot + '&Date=' + date); 

alert(myForm.elements["radio_button_1"].checked == true); 
var query = new google.visualization.Query(url); 
query.setTimeout(20); 
query.send(queryResponse); 
} 
+0

Avez-vous essayé sortir toute matrice de POST pour vous assurer que vous n'êtes pas seulement manquer la valeur? –

+0

Pouvez-vous afficher le code dans lequel vous essayez de récupérer vos valeurs? – Jrod

Répondre

1

utilisant

<% response.write(request.form("radio_button")) %> 

doit imprimer 1 ou 2 en fonction de votre sélection.

cela ne fonctionne pas?

modifier: en fonction de votre question édité

essayer cette

function validate(){ 
    var cont=0; 
    var result=false; 
    var oArr=document.getElementsByName('radio_button'); 
    for(cont=0;cont < oArr.length;cont++){ 
     if(oArr[cont].checked == true){ 
      alert(oArr[cont].id + 'was checked'); 
      result=true; 
     } 
    } 
    return(result); 
} 
+0

Donc le <% response.write (request.form ("radio_button"))%> sort correctement mais il ne semble pas passer correctement à la partie javascript du code et je ne sais pas pourquoi. – user528676

+1

votre approche pour vérifier quel poste radio est masqué est fausse, les boutons radio/cases à cocher se comportent comme un tableau d'éléments en fonction de leur nom, l'approche correcte est d'obtenir le tableau entier et l'itération entre eux et vérifier l'état vérifié – Rafael

+0

juste essayé votre code mais il n'alerte pas. Je pense que le problème pourrait être que l'action de formulaire est elle-même et donc elle prend les boutons non cochés. Je ne sais pas comment changer cela. – user528676

1

Essayez trouver avec ID comme ci-dessous.

function initTermCloud() { 
     var myForm = document.getElementById("termCloudForm"); 
     var slot = myForm.elements["Slot"].value; 
     var date = myForm.elements["Date"].value; 
     var url = encodeURI('http://TermCloudJSON2Local.asp?Slot=' + slot + '&Date=' + date); 

     alert(document.getElementById("radio_button_1").checked) 

     var query = new google.visualization.Query(url); 
     query.setTimeout(20); 
     query.send(queryResponse); 
    } 
+0

J'ai d'abord utilisé ce code exact, mais je reçois seulement la valeur initiale des boutons radio soit décochée ou si je mets un vérifié d'abord, puis cela sort. Je pense que cela a peut-être à voir avec le détachement. Je ne sais pas pourquoi. – user528676

Questions connexes