How do I default the value of a non-selected radio button to 0
?
I have the following HTML:
Use the :checked selector to determine if a value is selected:
function getRadioValue () {
if( $('input[name=myradiobutton]:radio:checked').length > 0 ) {
return $('input[name=myradiobutton]:radio:checked').val();
}
else {
return 0;
}
}
Update you can call the function above at any time to get the selected value of the radio buttons. You can hook into it on load and then whenever the value changes with the following events:
$(document).ready( function() {
// Value when you load the page for the first time
// Will return 0 the first time it's called
var radio_button_value = getRadioValue();
$('input[name=myradiobutton]:radio').click( function() {
// Will get the newly selected value
radio_button_value = getRadioValue();
});
}
I know this is an old question but I find that the answers are not sufficent enough
The cleanest way to do this is to use this code
$(".myRadio").click(function() {
alert($(this).val());
});
:-)
Your form input data should look like this
<input type="radio" value="40000" name="pay" class="myRadio" />
<label for="40000">40000</label>
To get the value of the selected Radio Button, Use RadioButtonName and the Form Id containing the RadioButton.
$('input[name=radioName]:checked', '#myForm').val()
OR by only
$('form input[type=radio]:checked').val();
Probably the best method (particularly if you want to be able to post a default value), would be to have a hidden radio button that starts out as selected and has your default value. So something like this:
<input type="radio" name="myradiobutton" value="0" checked="checked" style="display:none;" />
<input type="radio" name="myradiobutton" value="1" />1
<input type="radio" name="myradiobutton" value="2" />2
<input type="radio" name="myradiobutton" value="3" />3
If you can't modify your html directly, you could add it via script:
$(function() {
$('input[name=myradiobutton]:radio:first').before('<input type="radio" name="myradiobutton" value="0" checked="checked" style="display:none;" />');
});
Here's a demo of that: http://jsfiddle.net/Ender/LwPCv/
For radio buttons use the following script:
var myRadio = $('input[name=meme_wall_share]');
var checkedValue = myRadio.filter(':checked').val();
$('input[name=myradiobutton]:radio:checked')
will get you the selected radio button
$('input[name=myradiobutton]:radio:not(:checked)')
will get you the unselected radio buttons
Using this you can do this
$('input[name=myradiobutton]:radio:not(:checked)').val("0");
Update: After reading your Update I think I understand You will want to do something like this
var myRadioValue;
function radioValue(jqRadioButton){
if (jqRadioButton.length) {
myRadioValue = jqRadioButton.val();
}
else {
myRadioValue = 0;
}
}
$(document).ready(function () {
$('input[name=myradiobutton]:radio').click(function () { //Hook the click event for selected elements
radioValue($('input[name=myradiobutton]:radio:checked'));
});
radioValue($('input[name=myradiobutton]:radio:checked')); //check for value on page load
});