2009-04-28 14 views
1

Ich bin neu in ASP.NET-Programmierung. Ich muss eine Nachricht anzeigen, wenn RadioButton nicht angeklickt wird. Ich habe bereits JavaScript für das Ereignis onclick geschrieben, um die Einzelauswahl zu behandeln.Warnmeldung in ASP.NET

Mein Code:

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

Dies auch auf die Anzeige Alarmmeldung hält, wenn ich ein Optionsfeld ausgewählt haben. Warum?

+0

Ich nehme an, Sie haben mehr als einen Radiobutton. – cgp

Antwort

4

Sie müssen prüfen, ob der Radio-Button geklickt wurde oder nicht innerhalb des Onclick-Handlers für den lnkbtnDownload.

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

Verwendung

var r = documet.getElementById("rbTest") 

und dann mit r[0].checked

Verwendung Index zu vergleichen, weil RadioButton- r

0

Diese relativ hässlich ist ein Array sein kann, aber den Trick tun würde:

<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> 

Wenn Sie mehr als eine Optionsschaltfläche haben (was ich hoffe, dass Sie tun), dann können Sie getElementById wirklich nicht ohne all diese zusätzliche Schleifenlogik usw. verwenden. Dies vermeidet die Schleifenbildung.

Siehe Beispiel: http://jsbin.com/edoke

2

Sie müssen den Unterschied zwischen serverseitigen Code und clientseitigen Code zu verstehen. Ihr Code ist in C# geschrieben, der auf dem Server läuft. Hier ist, was ich davon ausgehe:

a. Ihre Seite wird zum ersten Mal gerendert und der Benutzer wählt nicht den entsprechenden Radiobutton. Er/Sie legt die Seite dann (möglicherweise über den LinkButton) vor.

b. Ihre Seite wird übermittelt und der Code, den Sie eingefügt haben, wird auf dem Server ausgeführt. Sie prüfen, ob der Radiobutton aktiviert ist. Wenn nicht, fügen Sie einem LinkButton ein Attribut hinzu, so dass beim Klicken auf den LinkButton eine Warnung ausgelöst wird.

c. Ihre Seite rendert nach Postback mit dem neuen Attribut, das dem LinkButton hinzugefügt wird.

d. Beim Klicken auf den LinkButton erhalten Sie eine Warnung mit der Nachricht. Da Sie festgelegt haben, dass "false" zurückgegeben wird, wird die Seite nicht erneut gesendet und zeigt Ihnen weiterhin die Warnung an.

Siehst du, was hier passiert? Ihre Warnbedingung muss auf dem Client selbst überprüft werden. Das von @Phoenix bereitgestellte Snippet sollte ein guter Ausgangspunkt sein.

+0

obwohl Phoenix Antwort ist richtig, das ist die Erklärung, warum es nicht funktioniert – Mafti

+0

Vielen Dank für die Unterstützung, Mafti! :-) – Cerebrus