पता करें कि क्या रेडियो बटन को JQuery से जांचा जाता है?


584

मैं ठीक से जाँच करने के लिए एक रेडियो बटन सेट कर सकता हूँ, लेकिन जो मैं करना चाहता हूँ वह एक प्रकार का 'श्रोता' सेटअप है जो एक निश्चित रेडियो बटन की जाँच करने पर सक्रिय हो जाता है।

उदाहरण के लिए, निम्न कोड लें:

$("#element").click(function()
{ 
    $('#radio_button').attr("checked", "checked");
});

यह एक जाँच विशेषता जोड़ता है और सब कुछ ठीक है, लेकिन मैं एक चेतावनी जोड़ने के बारे में कैसे जाऊँगा। उदाहरण के लिए, वह पॉप अप जब रेडियो बटन को क्लिक फ़ंक्शन की मदद के बिना जांचा जाता है?



1
संबंधित Monitoring when a radio button is unchecked stackoverflow.com/questions/5824639/…
Adrien Be

जवाबों:


1082
$('#element').click(function() {
   if($('#radio_button').is(':checked')) { alert("it's checked"); }
});

बिंगो! धन्यवाद डेविड। तो क्या मुझे अलर्ट दिखाने के लिए कोई कार्रवाई (क्लिक आदि) करनी होगी? क्या बिना क्लिक किए ऐसा करने का कोई तरीका है?
कीथ डोनेगन

3
यह "क्लिक फ़ंक्शन की मदद के बिना" हल नहीं करता है, क्या यह करता है?
ज़्नार्कस

5
@Znarkus: ओपी संतुष्ट दिखाई देता है। क्या आप यह तर्क देंगे कि आप स्वयं के उपयोग के ('#radio_button').clickबिना हैं click?
डेविड हेडलंड

3
@ डेविड दूसरी लाइन होनी चाहिए if ($('#radio_button').is(':checked'))) { alert("it's checked"); }- आप jQuery $ साइन भूल गए और फिर इसे कुछ और कोष्ठक में लपेटने की आवश्यकता है।
ज़ुलाउज़

2
@ ज़ुआ: आप सही कह रहे हैं! यहां तक ​​कि इसमें एक सिंटैक्स त्रुटि थी, जिस तरह से यह पहले था (बेजोड़ कोष्ठक)। नियत
डेविड हेडलंड

154

यदि आपके पास एक ही नाम विशेषता साझा करने वाले रेडियो बटनों का एक समूह है और सबमिट करने पर या कुछ ईवेंट आप चेक करना चाहते हैं कि क्या इनमें से एक रेडियो बटन की जाँच की गई थी, तो आप इसे निम्न कोड द्वारा बस कर सकते हैं:

$(document).ready(function(){
  $('#submit_button').click(function() {
    if (!$("input[name='name']:checked").val()) {
       alert('Nothing is checked!');
        return false;
    }
    else {
      alert('One of the radio buttons is checked!');
    }
  });
});

स्रोत

jQuery एपीआई रेफरी


इसने मेरे लिए काम नहीं किया। यदि मैं सचेत करता हूं ($ ("इनपुट [@ नाम = 'शिपिंग_मिथोड']: चेक किया गया")। वैल ()); यह अभी भी मुझे मूल्य देता है भले ही रेडियो बटन का चयन न किया गया हो।
एंड्रयूज

1
नोट: यदि आपके पास एक ही नाम का उपयोग करते हुए रेडियो बटन के समूहों के साथ कई फॉर्म हैं, तो आपको यह सुनिश्चित करने की आवश्यकता है कि सबमिट किए गए फॉर्म के केवल उन लोगों की जांच करें। ऐसा करने के लिए एक विकल्प फॉर्म पर खोज विधि का उपयोग कर रहा है:$('#myform').submit(function(event){ if (!$(this).find("input[name='name']:checked").val()) {
बेंजामिन

41

जैसा कि पराग के समाधान ने मेरे लिए एक त्रुटि डाली, यहाँ मेरा समाधान है (डेविड हेडलंड और पराग का संयोजन):

if (!$("input[name='name']").is(':checked')) {
   alert('Nothing is checked!');
}
else {
   alert('One of the radio buttons is checked!');
}

यह मेरे लिए ठीक काम किया!


32

IE में काम नहीं करता है, तो आपको चेकबॉक्स के क्लिक इवेंट को बांधना होगा।

$('#radio_button').click(function(){
    // if ($(this).is(':checked')) alert('is checked'); 
    alert('check-checky-check was changed');
});

अब जब आप प्रोग्राम को राज्य बदलते हैं, तो आपको इस ईवेंट को भी ट्रिगर करना होगा:

$('#radio_button').attr("checked", "checked");
$('#radio_button').click();

18

// कक्षा के माध्यम से जाँच करें

if($("input:radio[class='className']").is(":checked")) {
     //write your code         
}

// नाम के माध्यम से जाँच करें

if($("input:radio[name='Name']").is(":checked")) {
         //write your code         
}

// डेटा के माध्यम से जाँच करें

if($("input:radio[data-name='value']").is(":checked")) {
         //write your code         
}

10

दूसरा तरीका उपयोग करना है (jQuery> = 1.6) :prop

$("input[type=radio]").click(function () {
    if($(this).prop("checked")) { alert("checked!"); }
});

वास्तव .prop()में बहुत तेज है, और बस टाइप करना आसान है।
मार्क.2377

10

समाधान सरल होगा, जैसा कि आपको केवल एक निश्चित रेडियो बटन की जाँच करने पर 'श्रोताओं' की आवश्यकता होती है। कर दो :-

if($('#yourRadioButtonId').is(':checked')){ 
// Do your listener's stuff here. 
}

6

यदि आप एक क्लिक फ़ंक्शन का उपयोग नहीं करना चाहते हैं तो Jquery परिवर्तन फ़ंक्शन का उपयोग करें

$('#radio_button :checked').live('change',function(){
alert('Something is checked.');
});

यह वह उत्तर होना चाहिए जिसकी आपको तलाश है। यदि आप 1.9.1 से ऊपर के Jquery संस्करण का उपयोग कर रहे हैं, तो लाइव फ़ंक्शन को हटाए जाने के रूप में उपयोग करने का प्रयास करें।


6

... धन्यवाद दोस्तों ... मेरे लिए आवश्यक सभी चेक किए गए रेडियो बटन का 'मूल्य' था जहां सेट के प्रत्येक रेडियो बटन की एक अलग आईडी थी ...

 var user_cat = $("input[name='user_cat']:checked").val();

मेरे लिये कार्य करता है...


सबसे उपयोगी उत्तर
amal50


3

डायनामिक जनरेटेड रेडियो बटन चेक रेडियो को मान मिलता है

$("input:radio[name=radiobuttonname:checked").val();

डायनामिक रेडियो बटन बदलने पर

$('input[name^="radioname"]').change(function () {if (this.value == 2) { }else{}});

3

INR

    if(typeof $('.radio-button-class-name:checked').val() !== 'undefined'){
     // radio button is checked
    }

1
चूँकि आपका आईडी के बजाय एक वर्ग के साथ उपयोग करता था, यह एक तत्व के बजाय एक नोडेलिस्ट को वापस कर देता था। $('.radio-button-class-name').first().is(':checked')काम करना चाहिए था।
लेवी जोहान्सन



0

jQuery अभी भी लोकप्रिय है, लेकिन अगर आप कोई निर्भरता नहीं रखना चाहते हैं, तो नीचे देखें। लघु और स्पष्ट फ़ंक्शन यह पता लगाने के लिए कि क्या ईएस -2015 पर रेडियो बटन की जांच की गई है:

function getValueFromRadioButton( name ){
  return [...document.getElementsByName(name)]
         .reduce( (rez, btn) => (btn.checked ? btn.value : rez), null)
}

console.log( getValueFromRadioButton('payment') );
<div>  
  <input type="radio" name="payment" value="offline">
  <input type="radio" name="payment" value="online">
  <input type="radio" name="payment" value="part" checked>
  <input type="radio" name="payment" value="free">
</div>


-3
$("#radio_1").prop("checked", true);

1.6 से पहले jQuery के संस्करणों के लिए, उपयोग करें:

$("#radio_1").attr('checked', 'checked');

2
इस checked संपत्ति के मूल्य को क्वेरी के बजाय सेट करता है।
मार्क.2377
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.