सवाल मुझे कैसे पता चलेगा कि jQuery के माध्यम से कौन सा रेडियो बटन चुना गया है?


मेरे पास दो रेडियो बटन हैं और चयनित एक के मूल्य को पोस्ट करना चाहते हैं। मैं jQuery के साथ मूल्य कैसे प्राप्त कर सकता हूं?

मैं उन्हें इस तरह से प्राप्त कर सकता हूं:

$("form :radio")

मुझे कैसे पता चलेगा कि कौन सा चुना गया है?


2293
2018-02-27 19:53


मूल




जवाब:


के मूल्य प्राप्त करने के लिए चयनित  radioName आईडी के साथ एक फार्म की वस्तु myForm:

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

यहां एक उदाहरण दिया गया है:

$('#myForm input').on('change', function() {
   alert($('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>


3535
2018-02-27 19:58



मैं इसका उपयोग कर समाप्त हुआ: $ ('फॉर्म इनपुट [प्रकार = रेडियो]: चेक किया गया') - juan
@ पीटरजे: आपने बस इसके बजाय दो तर्कों का उपयोग क्यों किया '#myform input[name=radioName]:checked'? - Sophie Alpert
सही ढंग से स्कॉप्ड करते समय jQuery सबसे अच्छा प्रदर्शन करता है, और आईडी द्वारा चयन हमेशा उच्च प्रदर्शन करने वाला चयनकर्ता होता है। दो तर्क विधि यह करने का एक और तरीका है। - Peter J
क्यों नहीं: रेडियो: चेक किया? - Bakaburg
सर्वोत्तम प्रदर्शन के लिए, दस्तावेज: रेडियो चयनकर्ता का उपयोग न करने की सिफारिश करता है। api.jquery.com/radio-selector - Peter J


इसे इस्तेमाल करो..

$("#myform input[type='radio']:checked").val();

370
2018-01-07 00:45



यदि आपके फॉर्म में रेडियो बटन के कई सेट हैं तो मुझे लगता है कि यह केवल पहले सेट का मान प्राप्त करेगा। - Brad
यह केवल फॉर्म में चेक किए गए पहले रेडियो बटन का मूल्य लौटाएगा। यह पीटर जे सुझाव के तरीके से किया जाना चाहिए। - MickJ
@ मिकजे कोड का यह टुकड़ा पीटर जे से एक जैसा है ... मूल प्रश्न के उपयोग के मामले को ध्यान में रखते हुए। हालांकि, अगर आपके पास रेडियो बटन के विभिन्न समूह हैं, तो यह काम नहीं करेगा। यही कारण है कि यह उपयोग करने के लिए सबसे बेहतर है [name = selector] - Lyth
जैसा कि @ ब्राड ने उल्लेख किया है, यह केवल पहले सेट का मूल्य प्राप्त करेगा। आप जो चाहते हैं ".val ()" को ".map (function () {re. this.value;} के साथ प्रतिस्थापित करना है) प्राप्त करें ();" - am_
इसके लायक होने के लिए, (हाँ, मुझे आवश्यक ब्ला ब्लाह से पहले अनुकूलित करना पता है) लेकिन शुद्ध प्रदर्शन के लिए यह विशेष रूप से पुराने ब्राउज़र में तेजी से काम करता है: $("#myform").find("input[type='radio']:checked").val(); - Mark Schultheiss


यदि आपके पास पहले से ही रेडियो बटन समूह का संदर्भ है, उदाहरण के लिए:

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

256
2018-02-09 18:25



मैं सिर्फ स्पष्टता के लिए जोड़ना चाहता था, जो वास्तव में खोजता है () वास्तव में खोजता है सब वंशज तत्व (जो दिए गए चयनकर्ता से मेल खाते हैं)। यदि आप केवल प्रत्यक्ष बच्चों को चाहते हैं, तो बच्चों का उपयोग करें ()। - Matt Browne


यह काम करना चाहिए:

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

इनपुट के चारों ओर उपयोग किए गए नोट को नोट करें: पीटर जे के समाधान की तरह चेक किया गया है और नहीं


119
2018-03-30 22:29





आप रेडियो चयनकर्ता के साथ चेक किए गए चयनकर्ता का उपयोग कर सकते हैं।

 $("form:radio:checked").val();

69
2018-02-27 20:00



यह अच्छा लग रहा है, हालांकि, jQuery दस्तावेज बेहतर प्रदर्शन के लिए रेडियो के बजाय [टाइप = रेडियो] का उपयोग करने की सिफारिश करता है। यह पठनीयता और प्रदर्शन के बीच एक व्यापार है। मैं आमतौर पर ऐसे मामूली मामलों पर प्रदर्शन पर पठनीयता लेता हूं, लेकिन इस मामले में मुझे लगता है कि [प्रकार = रेडियो] वास्तव में स्पष्ट है। तो इस मामले में यह $ ("फॉर्म इनपुट [प्रकार = रेडियो]: चेक किया गया") जैसा दिखता है। वैल ()। हालांकि अभी भी एक वैध जवाब है। - J.Money


यदि आप केवल बूलियन मान चाहते हैं, यानी यदि यह चेक किया गया है या इसे आजमाएं नहीं:

$("#Myradio").is(":checked")

42
2017-08-30 20:27





सभी रेडियो प्राप्त करें:

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

चेक किए गए एक को पाने के लिए फ़िल्टर करें

radios.filter(":checked")

42
2017-09-01 17:55





एक और विकल्प है:

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

35
2017-09-21 19:35



यहां "रेडियो" भाग आवश्यक नहीं है। - Matt Browne


$("input:radio:checked").val();

25
2017-10-16 20: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();

इनपुट पर कक्षा का नाम रखने से मुझे आसानी से इनपुट स्टाइल करने की अनुमति मिलती है ...


20
2017-09-21 16:19