2009-07-22 40 views
15

jQuery में, मैं रेडियो बटन के सभी समूहों का चयन करना चाहता हूं जहां कोई बटन चेक नहीं किया गया है।jQuery और रेडियो बटन समूह

या, क्या कोई तरीका है जिसमें मैं सभी रेडियो बटन समूहों का चयन कर सकता हूं और समूहों के माध्यम से पुनरावृत्त कर सकता हूं?

मैं गतिशील रूप से एक पृष्ठ पर एन रेडियो बटन समूह जोड़ रहा हूं और नहीं जानता कि हाथ से पहले, रेडियो बटन समूह के नाम क्या होंगे।

+0

क्या आप नमूना एचटीएमएल डाल सकते हैं? –

उत्तर

34

सभी रेडियो समूहों ढूंढने के लिए:

var radio_groups = {} 
$(":radio").each(function(){ 
    radio_groups[this.name] = true; 
}) 

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

for(group in radio_groups){ 
    if_checked = !!$(":radio[name='"+group+"']:checked").length 
    alert(group+(if_checked?' has checked radios':' does not have checked radios')) 
} 
+2

क्या करता है !! खड़े हो जाओ और क्यों? –

+0

[डबले नहीं, यह पंक्ति में दो बार बूलियन मान को परिवर्तित करता है, इसलिए '!! true = true'] (http://stackoverflow.com/questions/1406604/what-does-the-operator-double-exclamation-point- मतलब-इन-जावास्क्रिप्ट/1406618 # 1406618) –

+0

मुझे पता है कि यह पुराना है, लेकिन इससे मुझे बहुत मदद मिली है! मैं बस यह सुनिश्चित करने का एक आसान तरीका चाहता था कि मेरे प्रत्येक रेडियो बटन समूह का चयन किया गया था, और यहां यह है। – LittleTreeX

0

समर्थन।

$('input').click(function() { 
    var $t = $(event.target); 
    if ($t.hasClass('checked')) $t.removeAttr('checked'); 
    else $('input[type="radio"][name="' + $t.prop('name') + '"]').not($t).removeClass('checked'); 
    $t.toggleClass('checked'); 
}).filter(':checked').addClass('checked');​ 

`` `

सबूत: http://jsfiddle.net/abrkn/PGW2Z/

0

समूह नाम से सभी रेडियो का चयन करें और केवल अलग-अलग नामों की सूची प्राप्त करने के लिए:

function selectRadioByGroupName() { 
     return $.unique($('input:radio').map(function(index, element) { 
      return this.name; 
     })); 
    } 

एक उदाहरण टुकड़ा:

function selectRadioByGroupName() { 
 
    return $.unique($('input:radio').map(function(index, element) { 
 
    return this.name; 
 
    })); 
 
} 
 

 

 

 
$(function() { 
 
    selectRadioByGroupName().each(function(index, element) { 
 
    $('body').append($('<p>First Group name is: ' + element + '</p>')); 
 
    }); 
 
});
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script> 
 

 
<form action=""> 
 
    <p> 
 
     Q1: 
 
    </p> 
 
    <input type="radio" name="gender" value="male"> Male<br> 
 
    <input type="radio" name="gender" value="female"> Female<br> 
 
    <input type="radio" name="gender" value="other"> Other 
 
    <br /> 
 
    <p> 
 
     Q2: 
 
    </p> 
 
    <input type="radio" name="status" value="male"> Single<br> 
 
    <input type="radio" name="status" value="female"> Married<br> 
 
    <input type="radio" name="status" value="other"> Other 
 
    <br /> 
 
    <input type="button" name="submit_id" value="Submit" onclick="submitAnswers()"> 
 
</form>

विभिन्न समूह नाम प्राप्त करने के बाद उन पर चक्र करना संभव है।

संबंधित मुद्दे