В jQuery, как мне получить значение переключателя, когда все они имеют одинаковое имя?
Вот мой код:
<table>
<tr>
<td>Sales Promotion</td>
<td><input type="radio" name="q12_3" value="1">1</td>
<td><input type="radio" name="q12_3" value="2">2</td>
<td><input type="radio" name="q12_3" value="3">3</td>
<td><input type="radio" name="q12_3" value="4">4</td>
<td><input type="radio" name="q12_3" value="5">5</td>
</tr>
</table>
<button id="submit">submit</button>
Вот JS:
$(function(){
$("#submit").click(function(){
alert($('input[name=q12_3]').val());
});
});
Вот JSFIDDLE! Каждый раз, когда я нажимаю кнопку, он возвращает 1. Почему? Кто-нибудь может мне помочь?
Ответы
Ответ 1
В вашем коде jQuery просто ищет первый экземпляр ввода с именем q12_3
, которое в этом случае имеет значение 1
. Вы хотите ввод с именем q12_3
который :checked
.
$("#submit").click(() => {
const val = $('input[name=q12_3]:checked').val();
alert(val);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td>Sales Promotion</td>
<td><input type="radio" name="q12_3" value="1">1</td>
<td><input type="radio" name="q12_3" value="2">2</td>
<td><input type="radio" name="q12_3" value="3">3</td>
<td><input type="radio" name="q12_3" value="4">4</td>
<td><input type="radio" name="q12_3" value="5">5</td>
</tr>
</table>
<button id="submit">submit</button>
Ответ 2
в вашем селекторе, вы также должны указать, что вы хотите проверить радиообъект:
$(function(){
$("#submit").click(function(){
alert($('input[name=q12_3]:checked').val());
});
});
Ответ 3
Вы можете изменить селектор:
$('input[name=q12_3]:checked').val()
Ответ 4
Есть и другой способ. Попробуйте под кодом
$(document).ready(function(){
$("input[name='gender']").on("click", function() {
alert($(this).val());
});
});
Ответ 5
$('input:radio[name=q12_3]:checked').val();
Ответ 6
используйте этот script
$('input[name=q12_3]').is(":checked");
Ответ 7
DEMO: https://jsfiddle.net/ipsjolly/xygr065w/
$(function(){
$("#submit").click(function(){
alert($('input:radio:checked').val());
});
});