Here's a code snippet. . .
<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>
Clearly, what I'm trying to do is call the routine linked to /accept when the user clicks on the radio button.
I know the routine is working because I call the same routine from another place in the program.
I'm trying to run it locally using google appserver. Is there something I'm missing?
Thanks
-
Your onClick event is expecting some javascript code:
onclick="SomeJavaScriptCode"More here: http://www.w3schools.com/jsref/jsref_onClick.asp
So, you should be doing something like this:
onClick="myfunction('my value');"EDIT: It looks like you want to go to a URL when the user clicks either "yes" or "no". To do that, you can try this little bit of javascript code:
onClick="location.href='http://www.example.com/accept';" onClick="location.href='http://www.example.com/decline';"Now, if you want to submit the form automatically when the user clicks either "yes" or "no", then do what Benry suggests:
onClick="this.form.submit();"Hope this helps.
Baltimark : where do you define that function? even if I put in nonsense, it doesn't produce an error. It's like it never gets called. is there a way to make an onclick call a cgi script? I'm not using javascript for this. -
You're probably thinking of action= for the form element. onClick would just fire a javascript function.
-
If you want to submit the entire form when the user clicks on a radio button, then try this:
<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, if you want to make your UI a little more user friendly, change it to this:
<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>This will make the text "Yes" and "No" as clickable labels for their radio buttons. The user can click the label to select the radio button.
-
OK -- I should have been clearer; I'm not using javascript at all. nothing philosophical, just trying to stay consistent.I thought there might be a way to do this without javascript. It's all in python with google appserver.
I've used "action=" for this form. I wanted to have an action take place when the user clicked the radio button, instead of having to click submit, but that's all right.
Benry -- thanks for the tip on using "id" and "for". I have very little html background.
mcv : If you're using onclick on a HTML element, you're using javascript. I see your question is a year old, so I hope you used that time to learn the difference between client side (html+javascript) and serverside (python appserver or whatever you're using) and how they interact. Read how HTTP works (because that's how they interact).
0 comments:
Post a Comment