2010-08-24 10 views
17

से अधिक समूह या रेडियोकैसे जांचें कि प्रत्येक समूह में एक रेडियो बटन jQuery में चेक किया गया है या नहीं?

<h1>Question 1</h1> 
<input type="radio" name="radio1" value="false" /> 
<input type="radio" name="radio1" value="true" /> 

<h1>Question 2</h1> 
<input type="radio" name="radio2" value="false" /> 
<input type="radio" name="radio2" value="true" /> 

मैं कैसे jQuery में जाँच कर सकते हैं बटन है कि प्रत्येक समूह में एक रेडियो बटन चेक किया गया है?

धन्यवाद।

उत्तर

21

यहाँ कैसे मैं यह कर होता है। यदि आपके रेडियो बटन जो भी टैग के साथ मिश्रित होते हैं, तो यह अभी भी काम करेगा। आप play around with it कर सकते हैं।

+0

हाँ, वास्तव में रेडियो बटन अन्य टैग के साथ मिश्रित कर रहे थे। लेकिन आपका समाधान काम किया। धन्यवाद। – iHello

2

आप प्रत्येक प्रश्न (<h1>) है और यह के जवाब के माध्यम से देख .filter() साथ .nextUntil() का उपयोग कर के माध्यम से लूप को देखने के लिए कर सकता है अगर कोई :checked हैं, इस तरह:

var noAns = $("h1").filter(function() { 
       return $(this).nextUntil("h1").filter(":checked").length == 0; 
      }); 

यह कोई रेडियो के साथ सभी प्रश्नों वापसी होगी चयनित उनके लिए, आप उस के .length की जांच कर सकता है अगर आप उदाहरण के लिए यदि किसी भी जवाब नहीं है देखने के लिए, चाहता था:

if(noAns.length > 0) { 
    alert(noAns.length + " question(s) don't have answers!"); 
} 

You can give it a try here


तुम भी सवाल है कि याद किया गया पर प्रकाश डाला उदाहरण के लिए इस एक सा विस्तार कर सकते हैं,:

if(noAns.css({ color: "red" }).length > 0) { 

और $("h1").css({ color: "" }) का उपयोग यह अगले दौर साफ़ करने के लिए, you can give it a try here

var all_answered = true; 
$("input:radio").each(function(){ 
    var name = $(this).attr("name"); 
    if($("input:radio[name="+name+"]:checked").length == 0) 
    { 
    all_answered = false; 
    } 
}); 
alert(all_answered); 

इस तरह आप भाई या माता-पिता टैग पर भरोसा करने की जरूरत नहीं है:

1

लपेटें प्रत्येक एक form या एक div के साथ रेडियो समूहों:

<div id="question1"> 
    <h1>Question 1</h1> 
    <input type="radio" name="radio1" value="false" /> 
    <input type="radio" name="radio1" value="true" /> 
</div> 

<div id="question2"> 
    <h1>Question 2</h1> 
    <input type="radio" name="radio2" value="false" /> 
    <input type="radio" name="radio2" value="true" /> 
</div> 
फिर jQuery में

:

if ($('#question1 input[type=radio]:checked')[0] != undefined && $('#question2 input[type=radio]:checked')[0] != undefined) { 
    ... 
} 
0

मैं द्वारा जवाब upvoted "जीजी।" हालांकि, आपको HTML को बदलने की आवश्यकता नहीं है।

बस द्वारा चयन [नाम] (जो अद्वितीय होना चाहिए):

if ($("input[name='radio1']:checked")[0] != undefined && 
    $("input[name='radio2']:checked")[0] != undefined) { 
    ... 
} 
संबंधित मुद्दे