2008-12-02 12 views
9

Oto fragment kodu. . .za pomocą "onclick" za pomocą przycisku radiowego w aplikacji

<form name="FinalAccept" method="get"><br> 

<input type="radio" name="YesNo" value="Yes" onclick="/accept"> Yes<br> 

<input type="radio" name="YesNo" value="No" onclick="/accept"> No<br> 

Oczywiście, co próbuję zrobić, to zadzwonić procedura związana/zaakceptować, gdy użytkownik kliknie na przycisk radiowy.

Wiem, że procedura działa, ponieważ wywołuję tę samą procedurę z innego miejsca w programie.

Próbuję uruchomić go lokalnie za pomocą google appserver. Czy jest coś, czego mi brakuje?

Dzięki

Odpowiedz

2

Zdarzenie onClick spodziewa jakiś kod JavaScript:

onclick="SomeJavaScriptCode" 

Więcej tutaj: http://www.w3schools.com/jsref/jsref_onClick.asp

więc należy robić coś takiego:

onClick="myfunction('my value');" 

EDYCJA: Wygląda na to, że chcesz przejść do adresu URL, gdy użytkownik kliknie ks albo "tak" albo "nie". Aby to zrobić, możesz spróbować ten mały kawałek kodu javascript:

onClick="location.href='http://www.example.com/accept';" 
onClick="location.href='http://www.example.com/decline';" 

Teraz, jeśli chcesz przesłać formularz automatycznie, gdy użytkownik kliknie albo „tak” lub „nie”, a następnie zrobić to, co sugeruje Benry:

onClick="this.form.submit();" 

Mam nadzieję, że to pomoże.

+0

gdzie definiujesz tę funkcję? nawet jeśli wprowadzę nonsens, nie spowoduje to błędu. To tak, jakby nigdy nie został wywołany. Czy istnieje sposób na wywołanie onclick skryptu cgi? Nie używam do tego javascript. – Baltimark

1

Prawdopodobnie myślisz o akcji = dla elementu formularza. onClick po prostu uruchomi funkcję javascript.

12

Jeśli chcesz przesłać całą postać, gdy użytkownik kliknie na przycisk opcji, a następnie spróbuj tego:

<form name="FinalAccept" method="get" action="accept"><br> 
<input type="radio" name="YesNo" value="Yes" onclick="this.form.submit();"> Yes<br> 
<input type="radio" name="YesNo" value="No" onclick="this.form.submit();"> No<br> 
</form> 

Plus, jeśli chcesz, aby Twoje UI trochę bardziej przyjazny dla użytkownika, zmień go na to:

<form name="FinalAccept" method="get" action="accept"><br> 
<input id="rYes" type="radio" name="YesNo" value="Yes" onclick="this.form.submit();"> 
<label for="rYes">Yes</label><br> 
<input id="rNo" type="radio" name="YesNo" value="No" onclick="this.form.submit();"> 
<label for="rNo">No</label><br> 
</form> 

Spowoduje to, że tekst "Tak" i "Nie" będzie oznaczał klikalne przyciski opcji. Użytkownik może kliknąć etykietę, aby wybrać przycisk opcji.