Заявление о проблеме простое. Мне нужно узнать, выбрал ли пользователь радиокнопку из группы радиостанций. Каждый переключатель в группе имеет один и тот же идентификатор.
Проблема в том, что у меня нет контроля над тем, как формируется форма. Вот пример кода, как выглядит код управления переключателем:
<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 >
В дополнение к этому, когда выбран переключатель, он не добавляет атрибут "checked" к элементу управления, который только что проверял текст (я думаю, только свойство проверено без значения). Ниже показано, как выглядит выбранное радиоуправление
<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 >
Может ли кто-нибудь помочь мне с кодом jQuery, который может помочь мне получить значение проверенного переключателя?
Просто используйте.
$('input[name=name_of_your_radiobutton]:checked').val();
Так просто.
Во-первых, вы не можете иметь несколько элементов с одним и тем же идентификатором. Я знаю, что вы сказали, что не можете контролировать, как создается форма, но... попытайтесь как-то удалить все идентификаторы из радиоприемников или сделать их уникальными.
Чтобы получить значение выбранного переключателя, выберите его по имени с помощью фильтра :checked
.
var selectedVal = "";
var selected = $("input[type='radio'][name='s_2_1_6_0']:checked");
if (selected.length > 0) {
selectedVal = selected.val();
}
РЕДАКТИРОВАТЬ
Таким образом, вы не контролируете имена. В этом случае я бы сказал, что эти радиокнопки radioDiv
внутри div, названного, скажем, radioDiv
, а затем слегка модифицируют ваш селектор:
var selectedVal = "";
var selected = $("#radioDiv input[type='radio']:checked");
if (selected.length > 0) {
selectedVal = selected.val();
}
Самый простой способ получить выбранное значение переключателя:
$("input[name='optradio']:checked").val();
Между селектором не должно быть места.
$("#radioID") // select the radio by its id
.change(function(){ // bind a function to the change event
if( $(this).is(":checked") ){ // check if the radio is checked
var val = $(this).val(); // retrieve the value
}
});
Обязательно оберните это в функцию готовности DOM ($(function(){...});
или $(document).ready(function(){...});
).
radioID
на его идентификатор?
:checked
.$(function(){
$("#submit").click(function() {
alert($("input[name=q12_3]:checked").val());
});
});
.is(":checked")
. Функция jQuery is()
возвращает логическое значение (true или false), а не элемент.<input type="radio" class="radioBtnClass" name="numbers" value="1" />1<br/>
<input type="radio" class="radioBtnClass" name="numbers" value="2" />2<br/>
<input type="radio" class="radioBtnClass" name="numbers" value="3" />3<br/>
Это вернет, проверит значение переключателя.
if($("input[type='radio'].radioBtnClass").is(':checked')) {
var card_type = $("input[type='radio'].radioBtnClass:checked").val();
alert(card_type);
}
$("input[name='gender']:checked").val()
для вложенных атрибутов
$("input[name='lead[gender]']:checked").val()
Не забывайте отдельные фигурные скобки для имени
Чтобы получить значение выбранной кнопки радио, используйте имя RadioButtonName и идентификатор формы, содержащий RadioButton.
$('input[name=radioName]:checked', '#myForm').val()
ИЛИ только
$('form input[type=radio]:checked').val();
Получите все радиостанции:
var radios = $("input[type='radio']");
Фильтр, чтобы получить тот, который был проверен
radios.filter(":checked");
ИЛИ
Другой способ, которым вы можете найти значение переключателя
var RadeoButtonStatusCheck = $('form input[type=radio]:checked').val();
$('[name=your_inputs_names]:checked').val()
потому что они всегда имеют одно и то же уникальное имя
.filter()
Проверьте пример, который он отлично работает
<div class="dtl_radio">
Metal purity :
<label>
<input type="radio" name="purityradio" class="gold_color" value="92" checked="">
92 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="75">
75 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="58.5">
58.5 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="95">
95 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="59">
59 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="76">
76 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="93">
93 %
</label>
</div>
var check_value = $('.gold_color:checked').val();
if (!$("#InvCopyRadio").prop("checked") && $("#InvCopyRadio").prop("checked"))
// do something
undefined
если вы точно знаете, что значение должно быть checked
? Там нет необходимости в JQuery.
Только по имени
$(function () {
$('input[name="EventType"]:radio').change(function () {
alert($("input[name='EventType']:checked").val());
});
});
Попробуйте это с примером
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1 /jquery.min.js"></script>
<form id="myForm">
<input type="radio" name="radio" value="first"/> 1 <br/>
<input type="radio" name="radio" value="second"/> 2 <br/>
</form>
<script>
$(document).ready(function () {
$('#myForm').on('click', function () {
var value = $("[name=radio]:checked").val();
alert(value);
})
});
</script>
Лучший способ объяснить эту простую тему - дать простой пример и ссылку:
В следующем примере у нас есть два переключателя. Если пользователь выбирает любой радиокнопку, мы отобразим выбранное значение переключателя в поле предупреждения.
Html:
<form id="Demo">
<input type="radio" name="Gender" value="Male" /> Male <br />
<input type="radio" name="Gender" value="Female" /> Female<br />
<input type="radio" name="Gender" value="others" /> others <br />
</form>
JQuery: -
$(document).ready(function(){
$('#Demo input').on('change', function() {
alert($('input[name="Gender"]:checked', '#Demo').val());
});
});
<div id="subscriptions">
Company Suscription: <input type="radio" name="subsrad" value="1">
Customer Subscription:<input type="radio" name="subsrad" value="2">
Manully Set:<input type="radio" name="subsrad" value="MANUAL">
NO Subscription:<input type="radio" name="subsrad" value="0">
</div>
и обрабатывать jquery для предупреждения, так как для набора значений/Изменено через div id:
$("#subscriptions input") // select the radio by its id
.on('change', function(){ // bind a function to the change event
alert($('input[name="subsrad"]:checked', '#subscriptions').val());
});
это так легко....: -}
Ниже приведен рабочий пример с набором групп радиостанций, каждый из которых связан с различными разделами. Ваша схема именования важна, но в идеале вы должны попытаться использовать последовательную схему именования для входов в любом случае (особенно, когда они находятся в таких разделах, как здесь).
$('#submit').click(function(){
var section = $('input:radio[name="sec_num"]:checked').val();
var question = $('input:radio[name="qst_num"]:checked').val();
var selectedVal = checkVal(section, question);
$('#show_val_div').text(selectedVal);
$('#show_val_div').show();
});
function checkVal(section, question) {
var value = $('input:radio[name="sec'+section+'_r'+question+'"]:checked').val() || "Selection Not Made";
return value;
}
* { margin: 0; }
div { margin-bottom: 20px; padding: 10px; }
h5, label { display: inline-block; }
.small { font-size: 12px; }
.hide { display: none; }
#formDiv { padding: 10px; border: 1px solid black; }
.center { display:block; margin: 0 auto; text-align:center; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="center">
<div>
<h4>Section 1</h4>
<h5>First question text</h5>
<label class="small"><input type="radio" name="sec1_r1" value="(1:1) YES"> YES</label>
<label class="small"><input type="radio" name="sec1_r1" value="(1:1) NO"> NO</label>
<br/>
<h5>Second question text</h5>
<label class="small"><input type="radio" name="sec1_r2" value="(1:2) YES"> YES</label>
<label class="small"><input type="radio" name="sec1_r2" value="(1:2) NO"> NO</label>
<br/>
<h5>Third Question</h5>
<label class="small"><input type="radio" name="sec1_r3" value="(1:3) YES"> YES</label>
<label class="small"><input type="radio" name="sec1_r3" value="(1:3) NO"> NO</label>
</div>
<div>
<h4>Section 2</h4>
<h5>First question text</h5>
<label class="small"><input type="radio" name="sec2_r1" value="(2:1) YES"> YES</label>
<label class="small"><input type="radio" name="sec2_r1" value="(2:1) NO"> NO</label>
<br/>
<h5>Second question text</h5>
<label class="small"><input type="radio" name="sec2_r2" value="(2:2) YES"> YES</label>
<label class="small"><input type="radio" name="sec2_r2" value="(2:2) NO"> NO</label>
<br/>
<h5>Third Question</h5>
<label class="small"><input type="radio" name="sec2_r3" value="(2:3) YES"> YES</label>
<label class="small"><input type="radio" name="sec2_r3" value="(2:3) NO"> NO</label>
</div>
<div>
<h4>Section 3</h4>
<h5>First question text</h5>
<label class="small"><input type="radio" name="sec3_r1" value="(3:1) YES"> YES</label>
<label class="small"><input type="radio" name="sec3_r1" value="(3:1) NO"> NO</label>
<br/>
<h5>Second question text</h5>
<label class="small"><input type="radio" name="sec3_r2" value="(3:2) YES"> YES</label>
<label class="small"><input type="radio" name="sec3_r2" value="(3:2) NO"> NO</label>
<br/>
<h5>Third Question</h5>
<label class="small"><input type="radio" name="sec3_r3" value="(3:3) YES"> YES</label>
<label class="small"><input type="radio" name="sec3_r3" value="(3:3) NO"> NO</label>
</div>
</div>
<div id="formDiv" class="center">
<form target="#show_val_div" method="post">
<p>Choose Section Number</p>
<label class="small">
<input type="radio" name="sec_num" value="1"> 1</label>
<label class="small">
<input type="radio" name="sec_num" value="2"> 2</label>
<label class="small">
<input type="radio" name="sec_num" value="3"> 3</label>
<br/><br/>
<p>Choose Question Number</p>
<label class="small">
<input type="radio" name="qst_num" value="1"> 1</label>
<label class="small">
<input type="radio" name="qst_num" value="2"> 2</label>
<label class="small">
<input type="radio" name="qst_num" value="3"> 3</label>
<br/><br/>
<input id="submit" type="submit" value="Show Value">
</form>
<br/>
<p id="show_val_div"></p>
</div>
<br/><br/><br/>
Код HTML:
<input type="radio" name="active_status" class="active_status" value="Hold">Hold
<input type="radio" name="active_status" class="active_status" value="Cancel">Cancel
<input type="radio" name="active_status" class="active_status" value="Suspend">Suspend
Код Jquery:
$(document).on("click", ".active_status", function () {
var a = $('input[name=active_status]:checked').val();
(OR)
var a = $('.active_status:checked').val();
alert(a);
});
Вот 2 переключателя: rd1 и Radio1
<input type="radio" name="rd" id="rd1" />
<input type="radio" name="rd" id="Radio1" />
Самый простой способ проверить, какой переключатель установлен, путем проверки личности (свойство: "checked")
if ($("#rd1").is(":checked")) {
alert("rd1 checked");
}
else {
alert("rd1 not checked");
}
Я не являюсь javascript, но я нашел здесь для поиска этой проблемы. Для тех, у кого это есть и найти здесь, я надеюсь, что это поможет некоторым. Итак, если у вас есть список переключателей:
<div class="list">
<input type="radio" name="b1" value="1">
<input type="radio" name="b2" value="2" checked="checked">
<input type="radio" name="b3" value="3">
</div>
Я могу найти, какой из них выбран с этим селектором:
$('.list input[type="radio"]:checked:first').val();
Даже если элемент не выбран, я все равно не получаю неопределенную ошибку. Таким образом, вам не нужно писать дополнительную инструкцию if, прежде чем принимать значение элемента.
Вот очень простой пример jsfiddle.
это будет легко с onChange()
<input type="radio" name="radioName" value="1" onchange="radio_changed($(this).val())" /> 1 <br />
<input type="radio" name="radioName" value="2" onchange="radio_changed($(this).val())" /> 2 <br />
<input type="radio" name="radioName" value="3" onchange="radio_changed($(this).val())" /> 3 <br />
<script>
function radio_changed(val){
alert(val);
}
</script>
HTML Code
<input id="is_verified" class="check" name="is_verified" type="radio" value="1"/>
<input id="is_verified" class="check" name="is_verified" type="radio" checked="checked" value="0"/>
<input id="submit" name="submit" type="submit" value="Save" />
Javascript Code
$("input[type='radio'].check").click(function() {
if($(this).is(':checked')) {
if ($(this).val() == 1) {
$("#submit").val("Verified & Save");
}else{
$("#submit").val("Save");
}
}
});
<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 >
$(function() {
$("#submit").click(function() {
alert($('input[name=s_2_1_6_0]:checked').val());
});
});'