2009-04-28 8 views
1

Je suis novice en programmation ASP.NET. J'ai besoin d'afficher un message si l'on ne clique pas sur RadioButton. J'ai déjà écrit JavaScript pour l'événement onclick pour gérer la sélection unique.Message d'alerte dans ASP.NET

Mon code:

if(rbTest.Checked == true) 
{ 
     //my code 
} 
else 
{ 
    string message = "Please select case to download"; 
    lnkbtnDownload.Attributes.Add("onclick", "alert('" + message + "');return false;"); 
} 

Cela continue à afficher un message d'alerte, même si je l'ai sélectionné un bouton radio. Pourquoi?

+0

Je suppose que vous avez plus d'un bouton radio. – cgp

Répondre

4

Vous devez vérifier si le bouton radio est cliqué ou non dans le gestionnaire onclick pour le lnkbtnDownload.

lnkbtnDownload.Attributes.Add("onclick","if(!document.getElementById('rbTest').checked))alert('message')"); 
0

utilisation

var r = documet.getElementById("rbTest") 

puis comparer avec r[0].checked

indice d'utilisation, car RadioButton r peut être un tableau

0

Ceci est relativement laid, mais ferait l'affaire:

<script> 
    var rbSelected = false; 
</script> 

<form onsubmit="if (!rbSelected) { alert('You must select something!";return false}"> 
<input type="radio" name="rbTest" onclick="rbSelected=true" value=1>a 
<input type="radio" name="rbTest" onclick="rbSelected=true" value=2>b 
<input type="radio" name="rbTest" onclick="rbSelected=true" value=3>c 
<input type="submit value="Submit"> 
</form> 

Si vous avez plus d'un bouton radio (ce que j'espère que vous faites), alors vous ne pouvez vraiment pas utiliser getElementById sans toute cette logique de bouclage supplémentaire etc ... Cela évite la boucle.

Voir par exemple: http://jsbin.com/edoke

2

Vous devez comprendre la différence entre le code côté serveur et le code côté client. Votre code est écrit en C# qui s'exécute sur le serveur. Voici ce que je suppose qu'il se passe:

a. Votre page rend pour la première fois et l'utilisateur ne choisit pas le radiobutton pertinent. Il soumet ensuite la page (éventuellement via le LinkButton).

b. Votre page est soumise et le code que vous avez collé s'exécute sur le serveur. Vous vérifiez si le radiobutton est vérifié. Si ce n'est pas le cas, vous ajoutez un attribut à un LinkButton de sorte que lorsque vous cliquez sur le LinkButton, une alerte est déclenchée.

c. Votre page affiche après la publication avec le nouvel attribut ajouté au LinkButton.

d. Sur le clic du LinkButton, vous recevez une alerte avec le message. Puisque vous l'avez défini pour renvoyer false, la page ne sera plus soumise et continuera à vous montrer l'alerte.

Voyez-vous ce qui se passe ici? Votre condition d'alerte doit être vérifiée sur le client lui-même. L'extrait fourni par @Phoenix devrait être un bon point de départ.

+0

bien que la réponse de phoenix soit correcte, c'est l'explication pourquoi cela ne fonctionne pas – Mafti

+0

Merci pour le support, Mafti! :-) – Cerebrus

Questions connexes