JQuery: Как получить выбранное значение переключателя?
Как мне по умолчанию установить значение не выбранной радиокнопки на 0
?
У меня есть следующий HTML:
<input type="radio" name="myradiobutton" value="1" />1
<input type="radio" name="myradiobutton" value="2" />2
<input type="radio" name="myradiobutton" value="3" />3
И у меня есть следующий код, чтобы получить значение переключателя selected
var radio_button_value $('input[name=myradiobutton]:radio').click(function() {var value = $(this).val();});
Проблема в том, что я хочу по умолчанию использовать значение radio_button_value
- 0
в случае, если выбрано ничего. Как это сделать?
В основном я хочу сделать pseduo-код ниже (но это не работает)
var radio_button_value $('input[name=myradiobutton]:radio').click(function() {
if set
return $(this).val();
else
return 0;
});
UPDATE
Кажется, есть путаница в том, что я прошу.
Что я хочу делать, когда страница загружается (до того, как пользователь имел возможность даже выбрать радиокнопку), мне нужна функция, которая вернет 0 для значения переключателя.
Затем, как только пользователь выберет радиокнопку, эта функция SAME вернет выбранное значение переключателя.
Имеют смысл?
Ответы
Ответ 1
$('input[name=myradiobutton]:radio:checked')
вы получите выбранный переключатель
$('input[name=myradiobutton]:radio:not(:checked)')
предоставит вам невыделенные переключатели
Используя это, вы можете сделать это
$('input[name=myradiobutton]:radio:not(:checked)').val("0");
Обновление:. Прочитав ваше обновление, я думаю, что понимаю
Вы захотите сделать что-то вроде этого
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
});
Ответ 2
Используйте : checked, чтобы определить, выбрано ли значение:
function getRadioValue () {
if( $('input[name=myradiobutton]:radio:checked').length > 0 ) {
return $('input[name=myradiobutton]:radio:checked').val();
}
else {
return 0;
}
}
Обновить вы можете вызвать функцию выше в любое время, чтобы получить выбранное значение переключателей. Вы можете подключиться к нему при загрузке, а затем всякий раз, когда значение изменяется со следующими событиями:
$(document).ready( function() {
// Value when you load the page for the first time
// Will return 0 the first time it called
var radio_button_value = getRadioValue();
$('input[name=myradiobutton]:radio').click( function() {
// Will get the newly selected value
radio_button_value = getRadioValue();
});
}
Ответ 3
Он начнется, как только загрузится страница.
Вы можете сохранить его под некоторыми событиями, например, нажатием кнопки
$("#btn").click(function() {
var val= $('input[type="radio"]:checked').val();
});
Ответ 4
jQuery("input:radio[name=myradiobutton]:checked").val();
Ответ 5
Вероятно, лучший способ (особенно если вы хотите опубликовать значение по умолчанию), будет иметь скрытую радиокнопку, которая запускается как выбранная и имеет значение по умолчанию. Так что-то вроде этого:
<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
Если вы не можете напрямую изменить свой html, вы можете добавить его через script:
$(function() {
$('input[name=myradiobutton]:radio:first').before('<input type="radio" name="myradiobutton" value="0" checked="checked" style="display:none;" />');
});
Вот демонстрация этого: http://jsfiddle.net/Ender/LwPCv/
Ответ 6
Я знаю, что это старый вопрос, но я считаю, что ответы недостаточны.
Самый чистый способ сделать это - использовать этот код
$(".myRadio").click(function() {
alert($(this).val());
});
: -)
Ваши входные данные формы должны выглядеть так:
<input type="radio" value="40000" name="pay" class="myRadio" />
<label for="40000">40000</label>
Ответ 7
Этот метод Jquery возвращает значение по умолчанию 0 при загрузке страницы...
$('input[type="radio"]:checked').val();
Ответ 8
Чтобы получить значение выбранной кнопки радио, используйте имя RadioButtonName и идентификатор формы, содержащий RadioButton.
$('input[name=radioName]:checked', '#myForm').val()
ИЛИ только
$('form input[type=radio]:checked').val();
Ответ 9
Вы действительно должны использовать флажки, если будет экземпляр, где что-то не выбрано.
в соответствии с W3C
Если ни один из переключателей в наборе, совместно использующем одно и то же имя элемента управления, изначально "on", поведение пользовательского агента для выбора того, какой элемент управления первоначально "on", равен undefined. Заметка. Поскольку существующие реализации обрабатывают этот случай по-разному, текущая спецификация отличается от RFC 1866 ([RFC1866], раздел 8.1.2.4), которая гласит:
Во все времена проверяется только одна из переключателей в наборе. Если ни один из элементов набора радиоустройств не указывает "CHECKED", тогда пользовательский агент должен сначала проверить первый переключатель из набора.
Поскольку поведение пользовательского агента отличается, авторы должны убедиться, что в каждом наборе переключателей, из которого первоначально изначально "on".
Ответ 10
Эта работа для меня, надеюсь, поможет:
чтобы получить выбранное радио значение, вам нужно использовать имя отношения как селектор типа
selectedVal = $('input[name="radio_name"]:checked').val();
selectedVal будет иметь требуемое значение, измените имя radio_name в соответствии с вашим, в вашем случае это будет "myradiobutton"
selectedVal = $('input[name="myradiobutton"]:checked').val();
Ответ 11
Для радиокнопки используйте следующие script:
var myRadio = $('input[name=meme_wall_share]');
var checkedValue = myRadio.filter(':checked').val();