Wie kann ich herausfinden, welcher Schalter mit jQuery ausgewählt wird?

Ich habe zwei Schalter und Sie möchten den ausgewählten Wert veröffentlichen. Wie kann ich mit jQuery einen Wert erhalten?

Ich kann alle so bekommen:

 $("form :radio") 

Wie finde ich heraus, welcher ausgewählt ist?

2414
27 февр. von juan am 27. Februar eingestellt 2009-02-27 22:53 09 um 10:53 Uhr 2009-02-27 22:53
@ 33 Antworten
  • 1
  • 2

So erhalten Sie den Wert des ausgewählten Formulars radioName mit der ID myForm :

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

Hier ist ein Beispiel:

 <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 февр. Die Antwort gibt Peter J 27 Feb. 2009-02-27 22:58 09 um 22:58 Uhr 2009-02-27 22:58

Benutze es

border=0
 $("#myform input[type='radio']:checked").val(); 
382
07 янв. Die Antwort ist Joberror 07 Januar . 2010-01-07 03:45 '10 um 3:45 am 2010-01-07 03:45

Wenn Sie bereits einen Link zu einer Gruppe von Switches haben, zum Beispiel:

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

Verwenden Sie die filter() Funktion, nicht find() . ( find() dient zum Definieren von untergeordneten / untergeordneten Elementen, während filter() nach Elementen der obersten Ebene in Ihrer Auswahl sucht.)

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

Hinweise. Diese Antwort korrigierte ursprünglich eine andere Antwort, die die Verwendung von find() empfahl, die anscheinend geändert wurde. find() kann immer noch nützlich sein, wenn Sie bereits einen Verweis auf das Containerelement haben, jedoch nicht auf die Schalter, z.

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

Das sollte funktionieren:

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

Beachten Sie, dass "für die Eingabe verwendet: überprüft, nicht" wie ", als die Lösung Peter J

130
31 марта '11 в 1:29 2011-03-31 01:29 Die Antwort wird von Cam Tullos 31. März 11 um 01:29 2011-03-31 01:29 gegeben

Sie können den: markierten Wahlschalter mit dem Funkwahlschalter verwenden.

  $("form:radio:checked").val(); 
76
27 февр. Die Antwort gibt tvanfosson am 27. Februar. 2009-02-27 23:00 09 um 23:00 Uhr 2009-02-27 23:00 Uhr

Holen Sie sich alle Radiosender:

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

Filter, um den markierten zu erhalten

 radios.filter(":checked") 
49
01 сент. die antwort ist gegeben Alex V 01 sep. 2011-09-01 20:55 '11 um 20:55 2011-09-01 20:55

Wenn Sie nur einen booleschen Wert wünschen, das heißt, wenn er markiert ist oder nicht versucht:

 $("#Myradio").is(":checked") 
49
30 авг. Die Antwort wird von Juan am 30. August gegeben. 2013-08-30 23:27 13 am 23:27 2013-08-30 23:27

Eine andere Option:

 $('input[name=radioName]:checked').val() 
43
21 сент. Die Antwort gibt RedDragon am 21. September . 2011-09-21 22:35 '11 um 22:35 Uhr 2011-09-21 22:35
 $("input:radio:checked").val(); 
30
16 окт. Die Antwort wird von Phillip Senn am 16. Oktober gegeben. 2010-10-16 23:20 '10 um 23:20 2010-10-16 23:20

So schreibe ich das Formular und verarbeite den Empfang eines verifizierten Radios.

Verwenden Sie das Formular myForm:

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

Holen Sie sich den Wert aus dem Formular:

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

Wenn Sie das Formular nicht veröffentlichen, würde ich es folgendermaßen vereinfachen:

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

Dann wird der überprüfte Wert erhalten:

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

Mit einem Klassennamen an der Eingabe kann ich auf einfache Weise Eingaben erstellen ...

23
21 сент. Die Antwort wird von Darin Peterson 21 Sep gegeben. 2012-09-21 19:19 '12 um 19:19 2012-09-21 19:19

In meinem Fall habe ich zwei Schalter in einer Form, und ich wollte den Status jeder Taste wissen. Das hat für mich unten funktioniert:

 <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 авг. die antwort ist gegeben rmbianchi 02 aug. 2012-08-02 20:09 12 um 20:09 2012-08-02 20:09

Im generierten JSF- Switch (mit dem <h:selectOneRadio> ) können Sie <h:selectOneRadio> tun:

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

Dabei ist selectOneRadio ID radiobutton_id und form id ist form_id .

Verwenden Sie, wie angegeben, den Namen anstelle von id , da jQuery dieses Attribut verwendet (der Name wird automatisch von JSF generiert und ähnelt der Steuerelement-ID).

16
29 сент. Die Antwort wird Francisco Alvarado am 29. September gegeben. 2010-09-29 22:06 '10 um 22:06 Uhr 2010-09-29 22:06

Ich habe ein jQuery-Plugin geschrieben, um die Werte der Optionsschaltflächen zu konfigurieren und abzurufen. Er respektiert auch das "Change" -Ereignis bei ihnen.

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

Platzieren Sie den Code an einer beliebigen Stelle, um das Add-In zu aktivieren. Dann genieße es! Es überschreibt einfach die Standardwertfunktion, ohne irgendetwas zu brechen.

Sie können dieses jsFiddle-Programm besuchen, um es in Aktion zu testen und zu sehen, wie es funktioniert.

Feeddle

15
17 апр. Antwort von Mathias Lykkegaard Lorenzen 17. April 2013-04-17 12:58 13 um 12:58 2013-04-17 12:58

Prüfen Sie auch, ob der Benutzer etwas ausgewählt hat.

 var radioanswer = 'none'; if ($('input[name=myRadio]:checked').val() != null) { radioanswer = $('input[name=myRadio]:checked').val(); } 
14
15 нояб. Die Antwort ist Mark 15 Nov. gegeben. 2011-11-15 19:04 '11 am 19:04 2011-11-15 19:04

Wenn Sie mehrere Optionsfelder in einem Formular haben, dann

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

Es funktioniert für mich.

14
07 июня '12 в 7:45 2012-06-07 07:45 Antwort wird an Ramesh am 7. Juni 12 um 7:45 2012-06-07 07:45 gegeben

Es funktioniert super

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

Arbeitsdemonstration

Auswahl :checked funktioniert für checkboxes , radio buttons und wählt Elemente aus. Verwenden Sie für ausgewählte Elemente nur den :selected Selektor.

API für :checked Selector

12
14 февр. Die Antwort wird von Manoj am 14. Februar gegeben. 2015-02-14 14:41 '15 um 14:41 Uhr 2015-02-14 14:41

So ermitteln Sie den Wert des ausgewählten Radiosenders mithilfe der Klasse:

 $('.class:checked').val() 
11
11 янв. Antwort von Rodrigo Dias am 11. Januar 2013-01-11 21:05 13 um 21:05 Uhr 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 Die Antwort wird von Swadesh Bhattacharya am 17. Juli '12 um 15:01 2012-07-17 15:01 gegeben

Ich benutze dieses einfache Skript.

 $('input[name="myRadio"]').on('change', function() { var radioValue = $('input[name="myRadio"]:checked').val(); alert(radioValue); }); 
9
19 окт. Die Antwort gibt Lafif Astahdziq am 19. Oktober. 2014-10-19 20:34 '14 um 20:34 2014-10-19 20:34

Verwenden Sie dies:

 value = $('input[name=button-name]:checked').val(); 
9
10 авг. die antwort wird von jeswin 10 aug gegeben. 2013-08-10 21:22 13 um 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 авг. Die Antwort wird mit Code Spy 01 aug gegeben. 2017-08-01 09:09 '17 am 9:09 2017-08-01 09:09

Wenn Sie nur einen Satz von Schaltern in einem Formular haben, ist der jQuery-Code so einfach wie folgt:

 $( "input:checked" ).val() 
6
12 авг. Antwort von Randy Greencorn 12. August 2013-08-12 05:13 13 um 5:13 2013-08-12 05:13

Ich habe eine Bibliothek veröffentlicht, um damit zu helfen. Tatsächlich werden alle möglichen Eingabewerte abgerufen, es wird jedoch auch angegeben, welcher Schalter getestet wurde. Sie können dies unter https://github.com/mazondo/formalizedata überprüfen

Dies gibt Ihnen ein js-response Objekt, also ein Formular wie:

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

wird Sie mit

 $("form").formalizeData() { "favorite-color" : "blue" } 
5
23 янв. Die Antwort wird von Ryan 23. Januar gegeben 2014-01-23 09:40 '14 um 9:40 2014-01-23 09:40

Verwenden Sie den folgenden jQuery-Code, um alle Optionsfeldwerte in einem JavaScript-Array abzurufen:

 var values = jQuery('input:checkbox:checked.group1').map(function () { return this.value; }).get(); 
4
03 сент. Die Antwort ist Nilesh 03 Sep. 2013-09-03 06:25 '13 um 06:25 Uhr 2013-09-03 06:25

versuchen -

 var radioVal = $("#myform").find("input[type='radio']:checked").val(); console.log(radioVal); 
3
10 июля '17 в 15:21 2017-07-10 15:21 Die Antwort wird von Gautam Rai am 10. Juli 17 um 15:21 2017-07-10 15:21 gegeben

Ein anderer Weg, um es zu bekommen:

 <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 окт. Antwort von Mehdi Bouzidi 3. Oktober 2017-10-03 15:56 '17 am 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 Die Antwort wird von JoshYates1980 05 May '17 am 0:26 2017-05-05 00:26 gegeben

Was ich tun musste, war die Vereinfachung des C # -Codes, der in der JavaScript-Oberfläche so viel wie möglich möglich ist. Ich verwende einen Fieldset-Container, weil ich in DNN arbeite und ein eigenes Formular hat. Daher kann ich kein Formular hinzufügen.

Ich muss prüfen, welches Textfeld von 3 verwendet wird und wenn ja, welche Art von Suche? Beginnt mit einem Wert, Enthält einen Wert, Exakter Übereinstimmungswert.

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> 

Und mein Javascript:

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

Sie können sagen, dass Sie jedes enthaltende Tag mit einem Bezeichner verwenden können. Für DNNers ist es gut zu wissen. Das ultimative Ziel ist es, zur mittleren Ebene des Codes zu ge>

Daher muss ich den viel komplexeren vorherigen C # -Code nicht kopieren. Hier wird schweres Heben durchgeführt.

Ich musste ein wenig daran arbeiten und dann mit ihm zusammenarbeiten, damit es funktioniert. Daher hoffe ich, dass es für andere DNNer leicht zu finden ist.

1
04 сент. die antwort wird von user1585204 am 04 sep gegeben . 2017-09-04 18:41 '17 um 18:41 Uhr 2017-09-04 18:41

Aus dieser Frage heraus habe ich eine alternative Möglichkeit gefunden, auf die aktuell ausgewählte input zuzugreifen, wenn Sie sich im click Ereignis für Ihr entsprechendes Label befinden: Der Grund dafür ist, dass die neu ausgewählte input erst aktualisiert wird, wenn das label Ereignis auftritt.

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 янв. Antwort von Patrick Roberts 15. Januar 2016-01-15 20:31 '16 um 20:31 Uhr 2016-01-15 20:31

JQuery, um alle Schalter in Form und verifiziertem Wert zu erhalten.

 $.each($("input[type='radio']").filter(":checked"), function () { console.log("Name:" + this.name); console.log("Value:" + $(this).val()); }); 
0
07 нояб. Antwort von Iyyappan Amirthalingam 07 Nov. 2018-11-07 23:27 '18 um 11:27 PM 2018-11-07 23:27
  • 1
  • 2