Получить значение кнопки «Радио» с фоновым изображением [дубликат]

Вы можете обойти это, заменив объект (и, следовательно, связать область):

def foo(a=[]):
    a = list(a)
    a.append(5)
    return a

Ужасно, но он работает.

412
задан user1114212 24 December 2011 в 04:43
поделиться

22 ответа

Только по имени

$(function () {
    $('input[name="EventType"]:radio').change(function () {
        alert($("input[name='EventType']:checked").val());
    });
});
5
ответ дан Arun Prasad E S 21 August 2018 в 20:38
поделиться
<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);
}
25
ответ дан asumaran 21 August 2018 в 20:38
поделиться
  • 1
    Второй не будет работать, так как this ссылается на глобальный объект Window. – asumaran 15 April 2015 в 21:30
  • 2
    Спасибо. Я отредактировал ответ второго. Он получил «e.nodeName undefined». bcs "этого" объект. – Sumith Harshan 16 April 2015 в 04:25
<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());
            });

, это так просто ....: -}

3
ответ дан Badal 21 August 2018 в 20:38
поделиться
  • 1
    Более простой способ сделать это с помощью родительского идентификатора будет ... $ (& quot; # subscriptions & quot;). On ("change & quot ;, function () {var selection = $ (this) .find (" input: checked "). val (); alert (selection);}); – MistyDawn 13 April 2018 в 23:00

Лучший способ объяснить эту простую тему - дать простой пример и ссылку ссылки: -

В следующем примере у нас есть два переключателя. Если пользователь выбирает какой-либо радиокнопку, мы отобразим выбранное значение переключателя в окне предупреждения.

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());
        });
    });
4
ответ дан Brad Larson 21 August 2018 в 20:38
поделиться

Самый простой способ получить выбранное значение переключателя:

$("input[name='optradio']:checked").val();

Между селектором не должно быть места.

62
ответ дан clami219 21 August 2018 в 20:38
поделиться

Во-первых, вы не можете иметь несколько элементов с одним и тем же идентификатором. Я знаю, что вы сказали, что не можете контролировать, как создается форма, но ... попытайтесь как-то удалить все идентификаторы из радиостанций или сделать их уникальными.

Чтобы получить значение выбранного радио , выберите его по имени с фильтром :checked.

var selectedVal = "";
var selected = $("input[type='radio'][name='s_2_1_6_0']:checked");
if (selected.length > 0) {
    selectedVal = selected.val();
}

EDIT

Таким образом, вы не контролируете имена. В этом случае я бы сказал, что эти переключатели находятся внутри div, названного, скажем, radioDiv, а затем немного измените ваш селектор:

var selectedVal = "";
var selected = $("#radioDiv input[type='radio']:checked");
if (selected.length > 0) {
    selectedVal = selected.val();
}
283
ответ дан Dan Doyon 21 August 2018 в 20:38
поделиться
  • 1
    Я могу удалить идентификаторы, но не могу сделать их уникальными. Проблема в том, что значения имен также генерируются динамически, поэтому я не могу их также жестко кодировать. Также: проверено не работает – user1114212 24 December 2011 в 04:59
  • 2
    @ user1114212 - см. мое редактирование – Adam Rackis 24 December 2011 в 05:06
  • 3
    Несчастливо обернуть переключатели в div также невозможно, так как я работаю с корпоративным приложением и имею очень ограниченный контроль над изменением элементов пользовательского интерфейса. До сих пор я работал, назначая уникальный идентификатор элементу управления, а затем манипулировал ими через jQuery, но я застрял на том, чтобы он работал на радиокнопках :(. – user1114212 24 December 2011 в 05:21
  • 4
    @ user1114212 - вам нужно будет посмотреть на структуру html и выяснить, какой способ выбрать ваши переключатели – Adam Rackis 24 December 2011 в 05:28

Получить все радиостанции:

var radios = $("input[type='radio']");

Фильтр, чтобы получить тот, который был установлен

radios.filter(":checked");

ИЛИ

Другой вы можете найти значение переключателя

var RadeoButtonStatusCheck = $('form input[type=radio]:checked').val();
14
ответ дан Faisal 21 August 2018 в 20:38
поделиться
  • 1
    Я использую $('[name=your_inputs_names]:checked').val(), потому что у них всегда есть одно и то же уникальное имя – vladkras 27 January 2017 в 09:35
  • 2
    Хорошее использование .filter() – Mark Carpenter Jr 9 October 2017 в 13:58

Просто используйте.

$('input[name=name_of_your_radiobutton]:checked').val();

Так просто.

781
ответ дан Guruprasad Rao 21 August 2018 в 20:38
поделиться
  • 1
    +1 для этого .. интересно, почему другие используют биографии – atjoshi 29 April 2014 в 11:28
  • 2
    Чисто просто! Это должен быть принятый ответ. – joaorodr84 4 February 2015 в 17:03
  • 3
    Не забывайте знаки котировки: $ (& quot; input [name = '& quot; + fieldName + & quot;]: checked & quot;). Val (); – Atara 10 March 2015 в 10:33
  • 4
    Интересно, что никто не пытался отформатировать это для правильного кода? – Guruprasad Rao 11 August 2015 в 03:56
  • 5
    @Guraprasad Rao: Это правильный код - в этом случае цитаты не нужны. Попробуй и посмотри. – Stefan 16 February 2016 в 22:52
if (!$("#InvCopyRadio").prop("checked") && $("#InvCopyRadio").prop("checked"))
    // do something
6
ответ дан Krinkle 21 August 2018 в 20:38
поделиться
  • 1
    Зачем беспокоиться о сравнении строк с undefined, если вы знаете, что значение должно быть checked? В jQuery нет необходимости. – Devin Burke 24 December 2011 в 08:07
  • 2
    В вопросе я не вижу никакой информации о том, что один переключатель будет проверен с самого начала. Я имею в виду, что в большинстве случаев это происходит с помощью переключателей. Поэтому в случае, когда нам нужно будет проверить, что и никто не был выбран, attr («checked») вернет нулевой объект. – Tadej Magajna 25 December 2011 в 16:53
  • 3
    Правильно, но я просто хотел, чтобы возврат null не вызвал ошибку, поэтому сравнение с "undefined" не требуется. – Devin Burke 26 December 2011 в 00:49
  1. В вашем коде jQuery просто ищет первый экземпляр ввода с именем q12_3, который в этом случае имеет значение 1. Вам нужен вход с именем q12_3, который является :checked.
$(function(){
    $("#submit").click(function() {     
        alert($("input[name=q12_3]:checked").val());
    });
});
  1. Обратите внимание, что приведенный выше код не совпадает с использованием .is(":checked"). Функция is() jQuery возвращает логическое значение (true или false), а не элемент.
34
ответ дан Madhuka Dilhan 21 August 2018 в 20:38
поделиться
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");
        }
    }
});
0
ответ дан Md. Sohel Rana 21 August 2018 в 20:38
поделиться

См. ниже рабочий пример с набором групп радиостанций, каждый из которых связан с различными разделами. Ваша схема именования важна, но в идеале вам следует попытаться использовать последовательную схему именования для входов в любом случае (особенно, когда они находятся в таких разделах, как здесь).

$('#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/>

5
ответ дан MistyDawn 21 August 2018 в 20:38
поделиться

Вот два переключателя: 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");
   }
1
ответ дан Mohan 21 August 2018 в 20:38
поделиться
  • 1
    Это не очень надежное решение. Лучше просто иметь содержащий div, а затем посмотреть на все радиостанции под ним и выбрать проверенный. Вы также можете посмотреть все радиостанции с определенным именем, а затем найти проверенный. Это уменьшает необходимость менять код при каждом добавлении кнопки. – Richard Duerr 13 October 2016 в 21:42
  • 2
    большое спасибо =) – David Guillermo López Vázquez 1 February 2017 в 03:31
  • 3
    Если на вашей странице есть более 2 радиовходов, это может стать ОЧЕНЬ запутанным, и присвоение идентификатора каждому отдельному радио будет очень трудоемким. Этот метод обычно не считается хорошей практикой. – MistyDawn 13 April 2018 в 21:59

Чтобы получить значение выбранной радиокнопки, используйте имя RadioButtonName и идентификатор формы, содержащий RadioButton.

$('input[name=radioName]:checked', '#myForm').val()

ИЛИ только

$('form input[type=radio]:checked').val();
15
ответ дан Nadir 21 August 2018 в 20:38
поделиться
$("#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(){...});).

37
ответ дан Purag 21 August 2018 в 20:38
поделиться
  • 1
    Я всегда получаю пустое значение с помощью этого кода. Я предполагаю, что это связано с тем, что у меня нет свойства со значением, проверенным только на проверенном тексте (я не уверен, можем ли мы считать его свойством) – user1114212 24 December 2011 в 05:02
  • 2
    Вы выбираете переключатель по его идентификатору? Вы изменили radioID на свой ID? – Purag 24 December 2011 в 05:54

Проверьте, что он отлично работает

<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();

11
ответ дан Rajnesh Thakur 21 August 2018 в 20:38
поделиться

это будет легко с 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>
0
ответ дан Sandeep Kumar 21 August 2018 в 20:38
поделиться

Попробуйте это с примером

<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>
4
ответ дан saroj 21 August 2018 в 20:38
поделиться
 $("input[name='gender']:checked").val()

для вложенных атрибутов

$("input[name='lead[gender]']:checked").val()

Не забывайте отдельные фигурные скобки для имени

15
ответ дан user 21 August 2018 в 20:38
поделиться

Еще один простой способ понять ... Он работает:

Код 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);
});
1
ответ дан Vijay Deva 21 August 2018 в 20:38
поделиться

Я не 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 .

1
ответ дан Yusuf Uzun 21 August 2018 в 20:38
поделиться
  • 1
    Это неправильное использование атрибута name для радиовходов. Радиокнопки в группе должны иметь одно и то же имя, если вы хотите только одно значение из группы. Выполнение этого способа делает работу такой же, как и флажки, позволяя использовать несколько вариантов вместо одного выбора внутри группы. – MistyDawn 13 April 2018 в 22:06
  • 2
    @MistyDawn, вы правы, я даже не помню, как я это написал, вероятно, это от исправления ошибки. – Yusuf Uzun 14 April 2018 в 16:20
0
ответ дан Sandeep Kumar 4 November 2018 в 17:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: