469,610 Members | 1,859 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,610 developers. It's quick & easy.

Finding the selected radio button?

Hey All--

I'm rusty on my JavaScript but I'm pulling it back out to do a PHP/MySQL
database application. I'm doing all the validation in PHP, but I'm using
JavaScript to show/hide questions which depend on the responses to other
questions, e.g. "If you answered yes to the previous question, then what
time of day will you need your service activated?"

One aspect of this is needing to be able to decide which radio button in
certain groups is selected. Most of these are "yes/no", some have three
options. Apparently the only way to do this is with a for loop? I found
the following code many times on Google while looking for an answer:

================
<form name="test">
<input type="radio" name="myradio" />
<input type="radio" name="myradio" />
<input type="radio" name="myradio" />
</form>

<script type="text/javascript">
//a variable that will hold the index number of the selected radio button
for (i=0;i<document.test.myradio.length;i++){
if (document.test.myradio[i].checked==true)
theone=i
}
</script>
================

Is this really how everybody does it? It seems like such an obvious
shortcoming in JavaScript that I can't believe its true, but none of the
JS references that I've found online indicate the existence of a
selectedIndex() function or similar for a radio group.

Thanks

--
|\/| /| |2 |<
mehaase(at)sas(dot)upenn(dot)edu
Jul 23 '05 #1
2 16229
Mark Haase wrote:
Hey All--

I'm rusty on my JavaScript but I'm pulling it back out to do a PHP/MySQL
database application. I'm doing all the validation in PHP, but I'm using
JavaScript to show/hide questions which depend on the responses to other
questions, e.g. "If you answered yes to the previous question, then what
time of day will you need your service activated?"

One aspect of this is needing to be able to decide which radio button in
certain groups is selected. Most of these are "yes/no", some have three
options. Apparently the only way to do this is with a for loop? I found
the following code many times on Google while looking for an answer:

================
<form name="test">
<input type="radio" name="myradio" />
<input type="radio" name="myradio" />
<input type="radio" name="myradio" />
</form>

<script type="text/javascript">
//a variable that will hold the index number of the selected radio button
for (i=0;i<document.test.myradio.length;i++){
if (document.test.myradio[i].checked==true)
theone=i
}
</script>
================

Is this really how everybody does it? It seems like such an obvious
shortcoming in JavaScript that I can't believe its true, but none of the
JS references that I've found online indicate the existence of a
selectedIndex() function or similar for a radio group.


Build your own:
function selectedRadio(radiogroup){
for(i=0;i<radiogroup.length;i++){
if(radiogroup[i].checked) return i;
}
}

Mick

Jul 23 '05 #2
Mark Haase wrote:
One aspect of this is needing to be able to decide which radio button
in certain groups is selected. Most of these are "yes/no", some have
three options. Apparently the only way to do this is with a for loop?
Is this really how everybody does it? It seems like such an obvious
shortcoming in JavaScript that I can't believe its true, but none of
the JS references that I've found online indicate the existence of a
selectedIndex() function or similar for a radio group.


It does seem like a bother that form inputs are handled how they are in
javascript. But, this trouble is easily avoided by writing generalized
functions once and then never worrying about the particulars of getting
input values again.

I have general functions like getInputValue(), setInputValue(),
getInputDefaultValue(), etc at:
http://www.javascripttoolbox.com/validations/

They work regardless of input type, how many inputs there are with the same
name, etc. Very handy, and especially useful when an input on your form
changes from one type to another (radio to select, for example). By using
generalized functions, your javascript would most likely not need to be
changed.

Hope that helps,

--
Matt Kruse
http://www.JavascriptToolbox.com
http://www.AjaxToolbox.com
Jul 23 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by entoone | last post: by
8 posts views Thread by Nige | last post: by
reply views Thread by devrayhaan | last post: by
reply views Thread by gheharukoh7 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.