Як даведацца, які перамыкач абраны з дапамогай jQuery?

У мяне ёсць два пераключальніка і вы жадаеце апублікаваць значэнне абранага. Як я магу атрымаць значэнне з дапамогай jQuery?

Я магу атрымаць усе з іх вось так:

 $("form :radio") 

Як даведацца, які з іх абраны?

2414
27 февр. зададзены juan 27 февр. 2009-02-27 22:53 '09 а 22:53 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 студз. 2010-01-07 03:45 '10 у 3:45 2010-01-07 03:45

Калі ў вас ужо ёсць спасылка на групу перамыкачоў, напрыклад:

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

Выкарыстоўвайце функцыю filter() , а не find() . ( find() прызначаны для вызначэння элементаў child / descendant, тады як filter() шукае элементы верхняга ўзроўню ў вашым выбары.)

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

Камэнтара. Гэты адказ першапачаткова выпраўляў іншы адказ, які рэкамендаваў выкарыстоўваць find() , які, падобна, быў зменены. find() ўсё адно можа быць карысны для сітуацыі, калі ў вас ужо ёсць спасылка на элемент кантэйнера, але не на перамыкачы, напрыклад:

 var form = $("#mainForm"); ... var checkedValue = form.find("input[name=myRadio]:checked").val(); 
278
09 февр. адказ дадзены Matt Browne 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

Вы можаце выкарыстоўваць селектар: checked разам з селектарам радыё.

  $("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 сент. адказ дадзены Alex V 01 сент. 2011-09-01 20:55 '11 а 20:55 2011-09-01 20:55

Калі вы хочаце толькі лагічнае значэнне, то ёсць, калі яно праверана ці не спрабуе гэта зрабіць:

 $("#Myradio").is(":checked") 
49
30 авг. адказ дадзены Juan 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 окт. адказ дадзены Phillip Senn 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 сент. адказ дадзены Darin Peterson 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 у 20:09 2012-08-02 20:09

У згенераваным перамыкачы JSF (з дапамогай тэга <h:selectOneRadio> ) вы можаце зрабіць гэта:

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

дзе selectOneRadio ID radiobutton_id, а ідэнтыфікатар формы form_id.

Абавязкова выкарыстоўвайце імя замест id, як паказана, паколькі jQuery выкарыстоўвае гэты атрыбут (name генеруецца аўтаматычна JSF, якія нагадваюць ідэнтыфікатар элемента кіравання).

16
29 сент. адказ дадзены Francisco Alvarado 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. Тады атрымлівайце асалоду ад! Ён проста перавызначаем функцыю val па змаўчанні, не парушаючы нічога.

Вы можаце наведаць гэты jsFiddle, каб паспрабаваць яго ў дзеянні і паглядзець, як ён працуе.

Fiddle

15
17 апр. адказ дадзены Mathias Lykkegaard Lorenzen 17 крас. 2013-04-17 12:58 '13 у 12:58 2013/04/17 00:58

Таксама праверце, не абраў Ці карыстальнік нічога.

 var radioanswer = 'none'; if ($('input[name=myRadio]:checked').val() != null) { radioanswer = $('input[name=myRadio]:checked').val(); } 
14
15 нояб. адказ дадзены Mark 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 чэрвеня '12 у 7:45 2012-06-07 07:45

Гэта выдатна працуе

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

рабочая дэманстрацыя

Селектар :checked працуе для checkboxes , radio buttons і выбірае элементы. Толькі для абраных элементаў выкарыстоўвайце селектар :selected .

API для :checked Selector

12
14 февр. адказ дадзены Manoj 14 февр. 2015-02-14 14:41 '15 у 14:41 2015/02/14 14:41

Каб атрымаць значэнне абранай радыёстанцыі, якая выкарыстоўвае клас:

 $('.class:checked').val() 
11
11 янв. адказ дадзены Rodrigo Dias 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

Я выкарыстоўваю гэты просты script

 $('input[name="myRadio"]').on('change', function() { var radioValue = $('input[name="myRadio"]:checked').val(); alert(radioValue); }); 
9
19 окт. адказ дадзены Lafif Astahdziq 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

ДЭМА: 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 жнів. 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-аб'ект адказаў, таму форма накшталт:

 <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 янв. адказ дадзены Ryan 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 сент. 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 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

Што мне трэба было зрабіць, гэта спрасціць код З #, які робіць як мага больш у JavaScript-інтэрфейсе. Я выкарыстоўваю кантэйнер fieldset, таму што я працую ў DNN і мае сваю ўласную форму. Таму я не магу дадаць форму.

Мне трэба праверыць, якое тэкставае поле з 3 выкарыстоўваецца, і калі гэта так, які тып пошуку? Пачынаецца са значэння, Утрымоўвае значэнне, Дакладнае супадзенне значэння.

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() !== ''){ } 

Можна сказаць, што можна выкарыстоўваць любы які змяшчае тэг з ідэнтыфікатарам. Для DNNers гэта добра ведаць. Канчатковай мэтай тут з'яўляецца пераход да сярэдняга ўзроўню кода, неабходны для запуску пошуку дэталяў у SQL Server.

Такім чынам, мне не трэба капіяваць значна больш складаны папярэдні код З #. Цяжкі пад'ём ажыццяўляецца прама тут.

Мне давялося крыху папрацаваць над гэтым, а затым папрацаваць з ім, каб прымусіць яго працаваць. Таму для іншых DNNers, спадзяюся, гэта лёгка знайсці.

1
04 сент. адказ дадзены user1585204 04 сент. 2017-09-04 18:41 '17 у 18:41 2017/09/04 18:41

З гэтае пытанне , я прыдумаў альтэрнатыўны спосаб доступу да абранага ў бягучы момант input , калі вы знаходзіцеся у падзеі click для сваёй адпаведнай пазнакі, Прычына заключаецца ў тым, што нядаўна абраны 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 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

Іншыя пытанні па пазнаках або Задайце пытанне