Kaip sužinoti, kuris jungiklis yra pasirinktas naudojant jQuery?

Turiu du jungiklius ir norite paskelbti pasirinktą vertę. Kaip gauti vertę naudojant jQuery?

Aš galiu gauti juos visus taip:

 $("form :radio") 

Kaip sužinoti, kuris iš jų yra pasirinktas?

2414
27 февр. vasario 27 d 2009-02-27 22:53 '09, 10:53 AM 2009-02-27 22:53
@ 33 atsakymai
  • 1
  • 2

Norėdami gauti pasirinktos formos radioName elemento vertę su ID myForm :

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

Štai pavyzdys:

 <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 февр. Atsakymą pateikė Peter J 27 vasaris. 2009-02-27 22:58 '09, 10:58 val. 2009-02-27 22:58

Naudokite jį.

border=0
 $("#myform input[type='radio']:checked").val(); 
382
07 янв. atsakymas duotas Joberror 07 jan. 2010-01-07 03:45 '10, 3:45 val. 2010-01-07 03:45

Jei jau turite nuorodą į jungiklių grupę, pvz .:

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

Naudokite filter() funkciją, o ne find() . ( find() skirtas vaikų / palikuonių elementų apibrėžimui, o filter() ieško aukščiausio lygio elementų pasirinkime.)

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

Pastabos. Šis atsakymas iš pradžių ištaisė kitą atsakymą, kuris buvo rekomenduotas naudojant find() , kuris, atrodo, buvo pakeistas. find() vis tiek gali būti naudinga situacijai, kai jau turite nuorodą į konteinerio elementą, bet ne į jungiklius, pavyzdžiui:

 var form = $("#mainForm"); ... var checkedValue = form.find("input[name=myRadio]:checked").val(); 
278
09 февр. Atsakyti Matt Browne 09 Feb. 2011-02-09 21:25 '11, 21:25, 2011-02-09 21:25

Tai turėtų veikti:

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

Atkreipkite dėmesį, kad „naudojama įvesties: patikrinta, o ne„ kaip “, kaip sprendimas Peter J

130
31 марта '11 в 1:29 2011-03-31 01:29 atsakymą pateikė Cam Tullos, kovo 31 d., 11:29, 2011-03-31 01:29

Galite naudoti: patikrintą selektorių su radijo valdikliu.

  $("form:radio:checked").val(); 
76
27 февр. Atsakymą pateikė TVanfosson vasario 27 d. 2009-02-27 23:00 '09 23:00 val. 2009-02-27 23:00

Gaukite visas radijo stotis:

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

Filtruoti, kad gautumėte pažymėtą

 radios.filter(":checked") 
49
01 сент. atsakymas pateikiamas Alex V 01 sep. 2011-09-01 20:55 '11 at 20:55 2011-09-01 20:55

Jei norite tik loginės vertės, tai yra, jei ji yra patikrinta arba nesistengiama:

 $("#Myradio").is(":checked") 
49
30 авг. Atsakymą pateikė Juanas rugpjūčio 30 d. 2013-08-30 23:27 '13, 23:27, 2013-08-30 23:27

Kita galimybė:

 $('input[name=radioName]:checked').val() 
43
21 сент. Atsakymą RedDragon pateikia 21 sep . 2011-09-21 22:35 '11, 10:35 pm 2011-09-21 22:35
 $("input:radio:checked").val(); 
30
16 окт. Atsakymą pateikė Phillip Senn spalio 16 d. 2010-10-16 23:20 '10, 23:20, 2010-10-16 23:20

Štai kaip parašau formą ir apdoroju patvirtinto radijo gavimą.

Naudojant formą myForm:

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

Gauti vertę iš formos:

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

Jei nepaskelbsite formos, aš ją supaprastinčiau naudojant:

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

Tuomet patvirtinta vertė tampa:

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

Klasės pavadinimo įvedimas įvedimu leidžia man lengvai sukurti įvestį ...

23
21 сент. atsakymą pateikė Darin Peterson 21 sep. 2012-09-21 19:19 '12, 19:19, 2012-09-21 19:19

Mano atveju aš turiu du jungiklius vienoje formoje ir norėjau sužinoti kiekvieno mygtuko būseną. Tai veikė man toliau:

 <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 авг. atsakymas duotas rmbianchi 02 rug . 2012-08-02 20:09 '12 at 8:09 pm 2012-08-02 20:09

<h:selectOneRadio> JSF <h:selectOneRadio> (naudodami <h:selectOneRadio> ) galite tai padaryti:

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

kur selectOneRadio ID yra radiobutton_id, o formos ID yra form_id .

Būtinai naudokite pavadinimą vietoj ID , kaip nurodyta, nes jQuery naudoja šį atributą ( pavadinimas automatiškai generuojamas JSF, panašus į valdymo ID).

16
29 сент. atsakymas duotas Francisco Alvarado 29 sep. 2010-09-29 22:06 '10 10:06 val. 2010-09-29 22:06

Parašiau jQuery įskiepį, kad galėčiau konfigūruoti ir gauti radijo mygtukų reikšmes. Jis taip pat gerbia „keitimo“ įvykį.

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

Įdėkite kodą bet kur, kad įjungtumėte priedą. Tada mėgaukitės! Jis paprasčiausiai viršija numatytąjį val funkciją, nepažeidžiant nieko.

Galite apsilankyti jsFiddle, kad galėtumėte išbandyti ir pamatyti, kaip jis veikia.

Paštas

15
17 апр. Mathias Lykkegaard Lorenzen atsakymas balandžio 17 d 2013-04-17 12:58 '13, 12:58, 2013-04-17 12:58

Taip pat patikrinkite, ar vartotojas nieko pasirinko.

 var radioanswer = 'none'; if ($('input[name=myRadio]:checked').val() != null) { radioanswer = $('input[name=myRadio]:checked').val(); } 
14
15 нояб. atsakymas pateiktas Mark 15 lapkričio. 2011-11-15 19:04 '11, 19:04, 2011-11-15 19:04

Jei turite kelias radijo mygtukus vienoje formoje

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

Jis veikia man.

14
07 июня '12 в 7:45 2012-06-07 07:45 atsakymas į Ramesh pateikiamas birželio 12 d. 12 val. 07:45 2012-06-07 07:45

Tai puikiai veikia

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

Darbo demonstravimas

Selektorius :checked checkboxes , radio buttons ir elementų pasirinkimas. Jei norite pasirinkti tik tam tikrus elementus, naudokite :selected valdiklį.

API skirta :checked Selector

12
14 февр. Manoj atsakymą pateikė vasario 14 d. 2015-02-14 14:41 '15, 14:41 pm 2015-02-14 14:41

Norėdami gauti pasirinktos radijo stoties vertę naudodami šią klasę:

 $('.class:checked').val() 
11
11 янв. Rodrigo Dias atsakymas dėl sausio 11 d 2013-01-11 21:05 '13, 9:05 val. 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 atsakymą pateikė Swadesh Bhattacharya, liepos 17 d., 12 val. 15:01 2012-07-17 15:01

Aš naudoju šį paprastą scenarijų.

 $('input[name="myRadio"]').on('change', function() { var radioValue = $('input[name="myRadio"]:checked').val(); alert(radioValue); }); 
9
19 окт. atsakymą pateikė Lafif Astahdziq spalio 19 d. 2014-10-19 20:34 '14, 20:34, 2014-10-19 20:34

Naudokite:

 value = $('input[name=button-name]:checked').val(); 
9
10 авг. atsakymą pateikė jeswin 10 rug . 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 авг. Atsakymas duotas Kodas Spy 01 rug. 2017-08-01 09:09 '17 at 9:09 2017-08-01 09:09

Jei vienoje formoje yra tik vienas jungiklių rinkinys, jQuery kodas yra toks paprastas:

 $( "input:checked" ).val() 
6
12 авг. Atsakymas, kurį pateikė Randy Greencorn rugpjūčio 12 d 2013-08-12 05:13 '13, 5:13, 2013-08-12 05:13

Išleidau biblioteką, kad galėčiau padėti. Iš tikrųjų traukia visas galimas įvesties vertes, bet taip pat apima, kuris jungiklis buvo išbandytas. Tai galite patikrinti šiuo adresu : https://github.com/mazondo/formalizedata

Tai suteiks jums js atsako objektą, tokiu būdu, kaip ir forma

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

suteiks jums:

 $("form").formalizeData() { "favorite-color" : "blue" } 
5
23 янв. Atsakymą pateikė Ryan Jan 23 2014-01-23 09:40 '14 ne 9:40 2014-01-23 09:40

Jei norite gauti visas radijo mygtuko reikšmes „JavaScript“ masyve, naudokite šį jQuery kodą:

 var values = jQuery('input:checkbox:checked.group1').map(function () { return this.value; }).get(); 
4
03 сент. Atsakymas pateikiamas Nilesh 03 Sep. 2013-09-03 06:25 '13, 6:25 am 2013-09-03 06:25

pabandykite -

 var radioVal = $("#myform").find("input[type='radio']:checked").val(); console.log(radioVal); 
3
10 июля '17 в 15:21 2017-07-10 15:21 Atsakymą pateikė Gautam Rai liepos 17 d. 17 val. 15:21 2017-07-10 15:21

Kitas būdas jį gauti:

 <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 окт. atsakymą pateikė Mehdi Bouzidi 03 spalis 2017-10-03 15:56 '17 at 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 Atsakymą davė JoshYates1980 05 gegužės 17 d. 0:26 2017-05-05 00:26

Ką turėjau padaryti, buvo supaprastinti C # kodą, kuris, kiek įmanoma, veikia „JavaScript“ sąsajoje. Aš naudoju „Fieldset“ konteinerį, nes dirbau DNN ir jis turi savo formą. Todėl negaliu pridėti formos.

Turiu patikrinti, kuris 3 lauko tekstas naudojamas, ir, jei taip, kokio tipo paieška? Pradedama nuo vertės, Turi reikšmę, Tiksli atitikties vertė.

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> 

Ir mano javascript:

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

Galite pasakyti, kad galite naudoti bet kurį turinį su identifikatoriumi. DNNers gerai žinoti. Galutinis tikslas - pereiti prie vidutinio lygio kodo, reikalingo SQL Server paieškai.

Taigi nereikia kopijuoti daug sudėtingesnio ankstesnio C # kodo. Sunkus kėlimas atliekamas čia.

Turėjau šiek tiek dirbti šiuo klausimu ir tada dirbti su juo, kad jis veiktų. Todėl, tikiuosi, kad kiti DNNeriai yra lengvai rasti.

1
04 сент. atsakymą pateikė vartotojo1585204 04 sep . 2017-09-04 18:41 '17, 18:41 pm 2017-09-04 18:41

šio klausimo aš atėjau alternatyvų būdą, kaip pasiekti šiuo metu pasirinktą input kai esate atitinkamos etiketės click įvykio priežastis.

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 atsakymas, sausio 15 d 2016-01-15 20:31 '16 at 8:31 pm 2016-01-15 20:31

JQuery, kad gautumėte visus jungiklius formoje ir patikrintai vertei.

 $.each($("input[type='radio']").filter(":checked"), function () { console.log("Name:" + this.name); console.log("Value:" + $(this).val()); }); 
0
07 нояб. Atsakymas, kurį pateikė Iyyappan Amirthalingam, lapkričio 7 d. 2018-11-07 23:27 '18, 11:27 p. 2018-11-07 23:27
  • 1
  • 2

Kiti klausimai apie „ žymes „ arba „ Klauskite“