2010-05-13 4 views
0
var radiobox = document.getElementById('<%=rdoRiskAccepted.ClientID%>'); 

      alert(radiobox[0].checked); 

Je ne suis pas défini comme une alerte. Qu'est-ce que je fais mal.Besoin d'aide dans le code javascript

+0

débogage de base d'abord. Des erreurs dans la console d'erreur? L'identifiant que vous utilisez est-il réellement sorti dans le navigateur, et y a-t-il un bouton radio avec cet identifiant? –

+0

Essayez de placer <% = rdoRiskAccepted.ClientID%> dans une zone de texte invisible (avec style = "display: none"), puis accédez à l'ID de la zone de texte. Je ne pense pas que javascript puisse accéder aux variables .net (tout compte fait, je ne connais pas grand chose à propos de .net, donc je pourrais me tromper de façon flagrante). Deuxième pensée, pass est comme une variable dans la fonction js. – Random

Répondre

5

getElementById retourne un seul élément car, même pour les groupes radio, the id attribute must be unique. Vous devez utiliser l'attribut name pour spécifier un groupe radio et utiliser getElementsByName à la place. Par exemple:

<input type="radio" name="myRadio" checked><label>1</label> 
<input type="radio" name="myRadio"><label>2</label> 

JS

var radiobox = document.getElementsByName("myRadio"); 
alert(radiobox[0].checked); 
+0

J'utilise asp: radiobuttonlist, donc je n'aurais ID ... pas de nom –

+0

sérieux? ASP ne vous donne pas accès au nom? Eh bien, si c'est le cas, utilisez simplement l'ID pour obtenir le premier, puis accédez à la propriété .name pour obtenir le nom du jeu de boutons radio, puis accédez par index. – scunliffe

+0

@vaibhav: Je ne travaille pas avec ASP, mais votre balisage ASP.net devrait toujours être rendu en code HTML valide. Selon certaines des pages que j'ai lues, les boutons radio sont rendus avec le 'id' de la liste comme nom, donc en utilisant' document.getElementsByName ('<% = rdoRiskAccepted.ClientID%>'); 'devrait travail. –

1

alerte d'utilisation (radiobox .checked);

Je voudrais aussi savoir pourquoi vous utilisez clientid que vous devez utiliser <% = this.page.clientid + « _ » + rdoRiskAccepted.ClientID%>

+1

rdoRiskAccepted.ClientID renverra l'ID côté client complet du contrôle, avec les identificateurs d'espace réservé de page/contenu etc. en place. –

0

Avec jQuery ...

<asp:radiobuttonlist ID="rdoRiskAccepted" runat="server"> 
    <asp:listitem Value="True" Selected="true">Yes</asp:listitem> 
    <asp:listitem Value="False">No</asp:listitem> 
</asp:radiobuttonlist> 

<script type="text/javascript"> 
//<![CDATA[ 
$(document).ready(function(){ 
    var riskAccepted=$('#<%=rdoRiskAccepted.ClientID%> input'); 
    alert(riskAccepted[0].checked); //true 
}); 
//]]> 
</script> 
Questions connexes