The problem statement is simple. I need to see if user has selected a radio button from a radio group. Every radio button in the group share same id.
The problem is that I don't have control on how the form is generated. Here is the sample code of how a radio button control code looks like:
<input type="radio" name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >
In addition to this when a radio button is selected it doesn't add a "checked" attribute to the control just text checked (I guess just the property checked without a value). Below is how a selected radio control looks like
<input type="radio" checked name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >
Can anybody help me with jQuery code that can help me to get the value of checked radio button?
I am not a javascript person, but I found here for searching this problem. For who google it and find here, I am hoping that this helps some. So, as in question if we have a list of radio buttons:
I can find which one selected with this selector:
Even if there is no element selected, I still don't get undefined error. So, you don't have to write extra if statement before taking element's value.
Here is very basic jsfiddle example.
for nested attributes
Don't forget single braces for name
:checked
..is(":checked")
. jQuery'sis()
function returns a boolean (true or false) and not an element.By Name only
and handle jquery for alert as for th e value set / Changed through div id:
it is so easy....:-}
First, you cannot have multiple elements with the same id. I know you said you can't control how the form is created, but...try to somehow remove all the ids from the radios, or make them unique.
To get the value of the selected radio button, select it by name with the
:checked
filter.EDIT
So you have no control over the names. In that case I'd say put these radio buttons all inside a div, named, say,
radioDiv
, then slightly modify your selector: