2013-02-17 12 views
6

क्यों मेरा जेएस कोड name:check_all पर सभी क्लिकबॉक्सों की जांच कर सकता है?सभी चेकबॉक्सों की जांच jquery

HTML:

<div id="ss"> 
    <input type="checkbox" name="check_all"> 
</div> 
<input type="checkbox" name="checked" class="idRow"> 
<input type="checkbox" name="checked" class="idRow"> 
<input type="checkbox" name="checked" class="idRow"> 
<input type="checkbox" name="checked" class="idRow"> 
<input type="checkbox" name="checked" class="idRow"> 
<input type="checkbox" name="checked" class="idRow"> 
<input type="checkbox" name="checked" class="idRow"> 
<input type="checkbox" name="checked" class="idRow"> 

jQuery:

$(document).on('click change','input[name="check_all"]',function() { 
    var checkboxes = $('.idRow'); 
    if($(this).is(':checked')) { 
     checkboxes.attr("checked" , true); 
    } else { 
     checkboxes.attr ("checked" , false); 
    } 
}); 

डेमो:http://jsfiddle.net/KdaZr/

मेरे jQuery संस्करण 1.9 है।

इसे कैसे ठीक किया जा सकता है?

उत्तर

13

उपयोग prop विधि। जब आपका मार्कअप प्रस्तुत किया जाता है तो गुण तत्वों के गुण बन जाते हैं, जावास्क्रिप्ट का उपयोग करके आपको तत्व के गुणों को संशोधित करना चाहिए।

$(document).on('change','input[name="check_all"]',function() { 
    $('.idRow').prop("checked" , this.checked); 
}); 

http://jsfiddle.net/GW64e/

नोट गतिशील घटना को सौंपने के लिए कोई जरूरत नहीं है कि अगर input[name="check_all"] उत्पन्न नहीं है।

2

.prop का उपयोग करें, .attr, तत्वों के गुणों को बदलने के लिए। .attr एचटीएमएल विशेषताओं के लिए है।

http://jsfiddle.net/KdaZr/1/

0

ठीक पालन है: -

$(document).on('click change','input[name="check_all"]',function() { 
    var checkboxes = $('.idRow'); 
    if($(this).is(':checked')) { 
     checkboxes.each(function(){ 
      this.checked = true; 
     }); 
    } else { 
     checkboxes.each(function(){ 
      this.checked = false; 
     }); 
    } 
}); 
-1

एक पूरा समाधान का चयन करें || चेकबॉक्स का चयन रद्द jQuery:

$(document).ready(function() { 
    $("#checkedAll").change(function(){ 
    if(this.checked){ 
     $(".checkSingle").each(function(){ 
     this.checked=true; 
     })    
    }else{ 
     $(".checkSingle").each(function(){ 
     this.checked=false; 
     })    
    } 
    }); 

    $(".checkSingle").click(function() { 
    if ($(this).is(":checked")){ 
     var isAllChecked = 0; 
     $(".checkSingle").each(function(){ 
     if(!this.checked) 
      isAllChecked = 1; 
     })    
     if(isAllChecked == 0){ $("#checkedAll").prop("checked", true); }  
    } 
    else { 
     $("#checkedAll").prop("checked", false); 
    } 
    }); 
}); 

एचटीएमएल होना चाहिए:

जाँच की तीन चेकबॉक्स पर एकल चेक बॉक्स का चयन हो सकता है और का चयन रद्द होगा।

<input type="checkbox" name="checkedAll" id="checkedAll"></input> 

<input type="checkbox" name="checkAll" class="checkSingle"></input> 
<input type="checkbox" name="checkAll" class="checkSingle"></input> 
<input type="checkbox" name="checkAll" class="checkSingle"></input> 

आशा है कि इससे किसी के लिए यह मदद मिलेगी जैसा उसने मेरे लिए किया था।

+0

स्वीट जीसस, इतना कोड जब आपको बस इतना करना है: https://jsfiddle.net/4e8h7q7b/ – NullUserException

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