एक मान वाले रेडियो समूह से चयनित रेडियो सेट करें


153

मैं इससे क्यों जूझ रहा हूं?

मेरा एक मूल्य है: 5

मैं 5 के मूल्य के साथ समूह "माइग्रुप" के रेडियो बटन की जांच कैसे करूं?

$("input[name=mygroup]").val(5); // doesn't work?

जवाबों:


351

विशेषता चयनकर्ता की सहायता से आप संबंधित तत्व के साथ इनपुट तत्व का चयन कर सकते हैं। फिर आपको विशेषता का उपयोग करके स्पष्ट रूप से सेट करना होगा .attr:

var value = 5;
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked');

JQuery 1.6 के बाद से, आप .propबूलियन मान के साथ विधि का उपयोग कर सकते हैं (यह पसंदीदा तरीका होना चाहिए):

$("input[name=mygroup][value=" + value + "]").prop('checked', true);

याद रखें कि आपको पहले किसी एक रेडियो बटन समूह के तहत किसी भी रेडियो बटन से चेक की गई विशेषता को हटाने की जरूरत है, तभी आप उस रेडियो बटन समूह में रेडियो बटन में से किसी एक पर चेक की गई संपत्ति / विशेषता जोड़ पाएंगे।

एक रेडियो बटन समूह के सभी रेडियो बटन से चेक किए गए गुण को हटाने के लिए कोड -

$('[name="radioSelectionName"]').removeAttr('checked');

.प्रोप ('चेक किया हुआ', सच) शायद बेहतर है। या ()
ब्लेडफिस्ट

3
@bladefist: .isयहाँ मदद नहीं करेगा, लेकिन मैं इससे सहमत हूँ .prop। यह तब उपलब्ध नहीं था;) मेरे उत्तर को अपडेट करेगा। धन्यवाद!
फेलिक्स क्लिंग

4
यदि रेडियो बटन के मूल्य में एक दशमलव है, तो आपको उद्धरणों में मूल्य डालने की आवश्यकता है
रॉबर्ट

1
@ रॉबर्ट: हां, शायद। से प्रलेखन : "या तो एक गैर उद्धृत एक शब्द या एक उद्धृत स्ट्रिंग हो सकता है।"
फेलिक्स क्लिंग

5
जोनाथन का उत्तर देखें। JQuery डॉक्स दिखाता है कि .val()रेडियो या चेकबॉक्स समूहों पर मान सेट करने का समर्थन करता है। इस जवाब का तरीका तकनीकी रूप से काम करता है, लेकिन गोलमटोल है और बहुत कम पठनीय / यादगार है।
जिंगलेथुला

144

रेडियो और चेकबॉक्स की जाँच का एक बेहतर तरीका है; आपको कच्चे मान के बजाय वैल्यू विधि में मानों का एक सरणी पास करना होगा

नोट: यदि आप केवल मान को अपने आप से पास करते हैं (बिना किसी सरणी के अंदर ), तो परिणामस्वरूप "मायग्रुप" के सभी मानों को मूल्य पर सेट किया जाएगा।

$("input[name=mygroup]").val([5]);

यहाँ jQuery doc है जो बताता है कि यह कैसे काम करता है: http://api.jquery.com/val/#val-value

और .val([...])भी तरह प्रपत्र तत्वों के साथ काम करता है <input type="checkbox">, <input type="radio">और <option>एक के अंदर है <select>

उन इनपुट और विकल्पों का एक मान होता है जो सरणी के तत्वों में से किसी एक से मेल खाते हैं या उन्हें चयनित किया जाएगा, जबकि वे मूल्य जिनके पास सरणी के तत्वों में से एक से मेल नहीं खाता है, अनियंत्रित या अचयनित होंगे

इस कार्य को प्रदर्शित करते हुए फिडल: https://jsfiddle.net/92nekvp3/


स्वीकृत उत्तर (अच्छी तरह से, होना चाहिए)। JQuery 1.0 के अनुसार, डॉक्स (नीचे की ओर स्क्रॉल करें) से अंतिम उदाहरण देखें: api.jquery.com/val यहां कॉपी किया गया: jsfiddle.net/JoePC/w1f9ykso
JoePC

यह सभी इनपुट मानों को सेट करने का एक अच्छा और सुसंगत तरीका है। इसके बारे में जानने के लिए मुझे बहुत बुरा लगा 6 साल।
जेफ लोरी

1
यह जानने में काफी समय लगा कि समूह में मेरे सभी मूल्य मान की जाँच करने के बजाय पारित मूल्य पर सेट क्यों हो रहे हैं। बाहर मुड़ता है मैं एक सरणी के अंदर नहीं, खुद के द्वारा मूल्य पारित किया।
OXiGEN

14

इसे इस्तेमाल करे:

$('input:radio[name="mygroup"][value="5"]').attr('checked',true);

जेएस फिडेल डेमो


1
@ शिकारी, धन्यवाद ... आज स्पष्ट रूप से jQuery के लिए मेरा दिन नहीं है ... = /
डेविड ने कहा कि मोनिका


7

जब आप विशेषता मान को बदलते हैं, जैसे कि changeघटना के ऊपर उल्लिखित ट्रिगर नहीं किया जाता है, तो यदि कुछ कारणों से आप इसे इस तरह ट्रिगर कर सकते हैं

$('input[name=video_radio][value="' + r.data.video_radio + '"]')
       .prop('checked', true)
       .trigger('change');


1

या आप केवल इसके लिए मान विशेषता लिख ​​सकते हैं:

$(':radio[value=<yourvalue>]').attr('checked',true);

यह मेरे लिए काम करता है।


0
var key = "Name_radio";
var val = "value_radio";
var rdo = $('*[name="' + key + '"]');
if (rdo.attr('type') == "radio") {
 $.each(rdo, function (keyT, valT){
   if ((valT.value == $.trim(val)) && ($.trim(val) != '') && ($.trim(val) != null))

   {
     $('*[name="' + key + '"][value="' + (val) + '"]').prop('checked', true);
   }
  })
}

4
क्या आप कृपया बता सकते हैं कि आपका कोड आपके उत्तर में क्या करता है? कम से कम एक वाक्य या तो। और यह कैसे समाधान हल करता है। धन्यवाद।
एलेक्स

0

शुद्ध जावास्क्रिप्ट संस्करण:

document.querySelector('input[name="myradio"][value="5"]').checked = true;

-1
$('input[name="mygroup"]').val([5])

1
क्या आप बता सकते हैं कि आपका समाधान पहले से उपलब्ध अन्य समाधानों से अलग है?
जियोवानी वेरकूटरेन

@ गियोवानी वेरकूटरन, हमें एक स्ट्रिंग के रूप में नाम देना चाहिए। तो मैं कोड में एक स्ट्रिंग के रूप में माइग्रुप देता हूं।
अंजिथा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.