Как да разберете кой превключвател е избран чрез jQuery?

Имам два ключа и искате да публикувате избраната стойност. Как мога да получа стойност, използвайки jQuery?

Мога да получа всички такива:

 $("form :radio") 

Как да разберете коя е избрана?

2414
27 февр. настроен от Юан на 27 февруари 2009-02-27 22:53 '09 в 10:53 AM 2009-02-27 22:53
@ 33 отговора
  • 1
  • 2

За да получите стойността на избрания елемент radioName с id myForm :

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

Ето един пример:

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form id="myForm"> <input type="radio" name="radioName" value="1" /> 1 <br /> <input type="radio" name="radioName" value="2" /> 2 <br /> <input type="radio" name="radioName" value="3" /> 3 <br /> </form> 
3655
27 февр. Отговорът е даден от Peter J 27 февруари. 2009-02-27 22:58 '09 в 22:58 ч. 2009-02-27 22:58

Използвайте го.

border=0
 $("#myform input[type='radio']:checked").val(); 
382
07 янв. отговорът е даден на Joberror 07 Jan. 2010-01-07 03:45 '10 в 3:45 ч. 2010-01-07 03:45

Ако вече имате връзка към група от ключове, например:

 var myRadio = $("input[name=myRadio]"); 

Използвайте функцията filter() , а не find() . ( find() е за дефиниране на елементи на дете / потомък, докато filter() търси елементи от най-високо ниво във вашия избор.)

 var checkedValue = myRadio.filter(":checked").val(); 

Бележки. Този отговор първоначално коригира друг отговор, който се препоръчва с помощта на find() , който изглежда е бил променен. find() все още може да бъде полезен за ситуация, в която вече имате препратка към елемента контейнер, но не и към комутаторите, например:

 var form = $("#mainForm"); ... var checkedValue = form.find("input[name=myRadio]:checked").val(); 
278
09 февр. Отговор Мат Браун 09 фев. 2011-02-09 21:25 '11 в 21:25 2011-02-09 21:25

Това трябва да работи:

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

Имайте предвид, че "използван за въвеждане: проверен, а не" как ", като решението Peter J

130
31 марта '11 в 1:29 2011-03-31 01:29 отговорът е даден от Cam Tullos 31 март '11 в 1:29 2011-03-31 01:29

Можете да използвате селектора: проверен с радио-селектора.

  $("form:radio:checked").val(); 
76
27 февр. Отговорът е даден от tvanfosson на 27 февруари. 2009-02-27 23:00 '09 от 23:00 2009-02-27 23:00

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

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

Филтрирайте, за да получите маркирания

 radios.filter(":checked") 
49
01 сент. отговорът е даден Алекс V 01 сеп. 2011-09-01 20:55 '11 в 20:55 2011-09-01 20:55

Ако искате само булева стойност, т.е. ако е отметнато или не се опитва да го направи:

 $("#Myradio").is(":checked") 
49
30 авг. Отговорът е даден от Хуан на 30 август. 2013-08-30 23:27 '13 в 23:27 2013-08-30 23:27

Друга опция:

 $('input[name=radioName]:checked').val() 
43
21 сент. Отговорът е даден от RedDragon на 21 сеп . 2011-09-21 22:35 '11 в 22:35 ч. 2011-09-21 22:35
 $("input:radio:checked").val(); 
30
16 окт. Отговорът е даден от Филип Сен на 16 октомври. 2010-10-16 23:20 '10 в 23:20 2010-10-16 23:20

Ето как пиша формата и обработвам получаването на потвърдено радио.

Използвайки формата myForm:

 <form id='myForm'> <input type='radio' name='radio1' class='radio1' value='val1' /> <input type='radio' name='radio1' class='radio1' value='val2' /> ... </form> 

Получете стойността от формуляра:

 $('#myForm .radio1:checked').val(); 

Ако не публикувате формуляра, бих го опростил чрез:

 <input type='radio' class='radio1' value='val1' /> <input type='radio' class='radio1' value='val2' /> 

След това получаването на потвърдената стойност става:

  $('.radio1:checked').val(); 

Името на класа на входа ми позволява лесно да създавам входове ...

23
21 сент. отговорът е даден от Дарин Питърсън 21 сеп. 2012-09-21 19:19 '12 в 19:19 2012-09-21 19:19

В моя случай имам два ключа в една форма и исках да знам състоянието на всеки бутон. Това работи за мен по-долу:

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form id="toggle-form"> <div id="radio"> <input type="radio" id="radio1" name="radio" checked="checked" /><label for="radio1">Plot single</label> <input type="radio" id="radio2" name="radio"/><label for="radio2">Plot all</label> </div> </form> 
21
02 авг. отговорът е даден rmbianchi 02 авг. 2012-08-02 20:09 '12 в 8:09 ч. 2012-08-02 20:09

В генерирания JSF превключвател (използвайки <h:selectOneRadio> ) можете да направите това:

 radiobuttonvalue = jQuery("input[name='form_id\:radiobutton_id']:checked").val(); 

където ID на selectOneRadio е radiobutton_id , а идентификаторът на формуляр е form_id .

Не забравяйте да използвате името вместо id , както е посочено, тъй като jQuery използва този атрибут ( името се генерира автоматично от JSF, подобно на контролния идентификатор).

16
29 сент. отговорът е даден на Франсиско Алварадо на 29 септември. 2010-09-29 22:06 '10 в 22:06 часа 2010-09-29 22:06

Написах плъгин jQuery за конфигуриране и получаване на стойности за радио бутони. Той също така уважава „промяната“ на тях.

 (function ($) { function changeRadioButton(element, value) { var name = $(element).attr("name"); $("[type=radio][name=" + name + "]:checked").removeAttr("checked"); $("[type=radio][name=" + name + "][value=" + value + "]").attr("checked", "checked"); $("[type=radio][name=" + name + "]:checked").change(); } function getRadioButton(element) { var name = $(element).attr("name"); return $("[type=radio][name=" + name + "]:checked").attr("value"); } var originalVal = $.fn.val; $.fn.val = function(value) { //is it a radio button? treat it differently. if($(this).is("[type=radio]")) { if (typeof value != 'undefined') { //setter changeRadioButton(this, value); return $(this); } else { //getter return getRadioButton(this); } } else { //it wasn't a radio button - let call the default val function. if (typeof value != 'undefined') { return originalVal.call(this, value); } else { return originalVal.call(this); } } }; })(jQuery); 

Поставете кода навсякъде, за да активирате addin. Тогава се наслаждавайте! Той просто замества функцията по подразбиране, без да нарушава нищо.

Можете да посетите този jsFiddle, за да опитате в действие и да видите как работи.

цигулка

15
17 апр. Отговор от Mathias Lykkegaard Lorenzen 17 април 2013-04-17 12:58 '13 в 12:58 2013-04-17 12:58

Също така проверете дали потребителят е избрал нещо.

 var radioanswer = 'none'; if ($('input[name=myRadio]:checked').val() != null) { radioanswer = $('input[name=myRadio]:checked').val(); } 
14
15 нояб. отговорът е даден Марк 15 ноември. 2011-11-15 19:04 '11 в 19:04 2011-11-15 19:04

Ако имате няколко радио бутона в една форма, тогава

 var myRadio1 = $('input[name=radioButtonName1]'); var value1 = myRadio1.filter(':checked').val(); var myRadio2 = $('input[name=radioButtonName2]'); var value2 = myRadio2.filter(':checked').val(); 

Работи за мен.

14
07 июня '12 в 7:45 2012-06-07 07:45 отговорът е даден на Ramesh на 07.06.2012 г. в 7:45 ч. 2012-06-07 07:45

Тя работи чудесно

 $('input[type="radio"][class="className"]:checked').val() 

Работна демонстрация

Селектор :checked работи за checkboxes , radio buttons и избира елементи. Само за избрани елементи използвайте :selected селектор.

API за :checked Selector

12
14 февр. Отговорът е даден от Манодж на 14 февруари. 2015-02-14 14:41 '15 в 14:41 2015-02-14 14:41

За да получите стойността на избраната радиостанция, използвайки класа:

 $('.class:checked').val() 
11
11 янв. Отговор, даден от Родриго Диас на 11 януари 2013-01-11 21:05 '13 в 21:05 ч. 2013-01-11 21:05
  $(".Stat").click(function () { var rdbVal1 = $("input[name$=S]:checked").val(); } 
11
17 июля '12 в 15:01 2012-07-17 15:01 отговорът е даден от Swadesh Bhattacharya 17 юли '12 в 15:01 2012-07-17 15:01

Използвам този прост скрипт.

 $('input[name="myRadio"]').on('change', function() { var radioValue = $('input[name="myRadio"]:checked').val(); alert(radioValue); }); 
9
19 окт. отговорът е даден от Лафиф Астахзик на 19 октомври. 2014-10-19 20:34 '14 в 20:34 2014-10-19 20:34

Използвайте това:

 value = $('input[name=button-name]:checked').val(); 
9
10 авг. отговорът е даден от jeswin 10 август. 2013-08-10 21:22 '13 в 21:22 2013-08-10 21:22

DEMO : https://jsfiddle.net/ipsjolly/xygr065w/

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.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> 
7
01 авг. Отговорът е даден Code Spy 01 aug. 2017-08-01 09:09 '17 в 9:09 2017-08-01 09:09

Ако имате само 1 набор от ключове в 1 форма, кодът jQuery е толкова прост, колкото:

 $( "input:checked" ).val() 
6
12 авг. Отговор, даден от Randy Greencorn 12 август 2013-08-12 05:13 '13 в 5:13 2013-08-12 05:13

Пуснах библиотека, за да помогна с това. Всъщност издърпва всички възможни входни стойности, но включва и кой комутатор е тестван. Можете да проверите това на адрес https://github.com/mazondo/formalizedata

Това ще ви даде обект js-response, така че формата като:

 <form> <input type="radio" name"favorite-color" value="blue" checked> Blue <input type="radio" name="favorite-color" value="red"> Red </form> 

ще ви осигури:

 $("form").formalizeData() { "favorite-color" : "blue" } 
5
23 янв. Отговорът е даден от Райън Jan 23 2014-01-23 09:40 '14 в 9:40 2014-01-23 09:40

За да получите всички стойности на бутоните за избор в JavaScript масив, използвайте следния jQuery код:

 var values = jQuery('input:checkbox:checked.group1').map(function () { return this.value; }).get(); 
4
03 сент. Отговорът е даден на Nilesh 03 Sep. 2013-09-03 06:25 '13 в 6:25 ч. 2013-09-03 06:25

опитай -

 var radioVal = $("#myform").find("input[type='radio']:checked").val(); console.log(radioVal); 
3
10 июля '17 в 15:21 2017-07-10 15:21 Отговор е даден от Gautam Rai на 10 юли '17 в 15:21 2017-07-10 15:21

Друг начин да го получите:

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form id="myForm"> <span><input type="radio" name="q12_3" value="1">1</span><br> <span><input type="radio" name="q12_3" value="2">2</span> </form> 
2
03 окт. отговор, даден от Mehdi Bouzidi Oct 03 2017-10-03 15:56 '17 в 15:56 2017-10-03 15:56
 $(function () { // Someone has clicked one of the radio buttons var myform= 'form.myform'; $(myform).click(function () { var radValue= ""; $(this).find('input[type=radio]:checked').each(function () { radValue= $(this).val(); }); }) }); 
1
05 мая '17 в 0:26 2017-05-05 00:26 Отговорът е даден от JoshYates1980 05 Май '17 в 0:26 2017-05-05 00:26

Това, което трябваше да направя, беше да се опрости C # кодът, който прави възможно най-много в интерфейса на JavaScript. Използвам контейнер на fieldset, защото работя в DNN и има своя собствена форма. Затова не мога да добавя формуляр.

Трябва да проверя кое текстово поле от 3 се използва и ако да, какъв тип търсене? Започва със стойност, Съдържа стойност, Exact match value.

HTML:

 <fieldset id="fsPartNum" class="form-inline"> <div class="form-group"> <label for="txtPartNumber">Part Number:</label> <input type="text" id="txtPartNumber" class="input-margin-pn" /> </div> <div class="form-group"> <label for="radPNStartsWith">Starts With: </label> <input type="radio" id="radPNStartsWith" name="partNumber" checked value="StartsWith"/> </div> <div class="form-group"> <label for="radPNContains">Contains: </label> <input type="radio" id="radPNContains" name="partNumber" value="Contains" /> </div> <div class="form-group"> <label for="radPNExactMatch">Exact Match: </label> <input type="radio" id="radPNExactMatch" name="partNumber" value="ExactMatch" /> </div> 

И моят javascript:

  alert($('input[name=partNumber]:checked', '#fsPartNum').val()); if(txtPartNumber.val() !== ''){ message = 'Customer Part Number'; } else if(txtCommercialPartNumber.val() !== ''){ } else if(txtDescription.val() !== ''){ } 

Можете да кажете, че можете да използвате всеки съдържащ маркер с идентификатор. За ДННе е добре да знаете. Крайната цел тук е да се премине към средното ниво на код, необходим за започване на търсене на подробности в SQL Server.

Така че не е необходимо да копирам много по-сложния предишен C # код. Тук се извършва тежко повдигане.

Трябваше да работя малко по въпроса и след това да работя с него, за да работи. Ето защо, за други DNNers, надявам се, че е лесно да се намери.

1
04 сент. отговорът се дава от user1585204 на 04 сеп . 2017-09-04 18:41 '17 в 18:41 2017-09-04 18:41

От този въпрос , аз измислих алтернативен начин за достъп до текущо избрания input когато сте в събитие за вашето съответно етикетиране.Причината е, че новоизбраният input не се актуализира до неговото събитие с label .

TL; DR

 $('label').click(function() { var selected = $('#' + $(this).attr('for')).val(); ... }); 

 input[name="filter"] { display: none; } #reported label { background-color: #ccc; padding: 5px; margin: 5px; border-radius: 5px; cursor: pointer; } .query { padding: 5px; margin: 5px; } .query:before { content: "on " attr(data-method)": "; } [data-method="click event"] { color: red; } [data-method="change event"] { color: #cc0; } [data-method="click event with this"] { color: green; } 
1
15 янв. отговор, даден от Patrick Roberts Jan 15 2016-01-15 20:31 '16 в 20:31 2016-01-15 20:31

JQuery, за да получите всички ключове във форма и верифицирана стойност.

 $.each($("input[type='radio']").filter(":checked"), function () { console.log("Name:" + this.name); console.log("Value:" + $(this).val()); }); 
0
07 нояб. Отговор, даден от Iyyappan Amirthalingam 07 ноември. 2018-11-07 23:27 '18 в 23:27 ч. 2018-11-07 23:27
  • 1
  • 2

Други въпроси за тагове или Задайте въпрос