2014-07-16 6 views
8

जाँच की मैं jQuery 1.11.1 उपयोग कर रहा हूँ और यह मेरा कोड है:jQuery सभी चेकबॉक्स सेट

$("#rowchkall").change(function(){ 
    if($(this).is(':checked')){ 
     $("input:checkbox[class=rowchk]").each(function() { 
      alert("set checked"); 
      $(this).attr('checked', "checked"); 
     }); 
    }else{ 
     $("input:checkbox[class=rowchk]").each(function() { 
      $(this).attr('checked', false); 
     }); 
    } 
}); 

जब मैं पहली बार #rowchkall पर क्लिक करें, सभी चेकबॉक्स चेक को तैयार है। जब मैं इसे फिर से क्लिक करता हूं, तो सभी चेकबॉक्स अनचेक किए जाते हैं।

जब मैं इसे फिर से क्लिक करता हूं, तो अलर्ट बॉक्स अभी भी दिखाई देता है लेकिन चेकबॉक्स में से कोई भी चेक नहीं किया जाएगा। यह केवल पहली बार क्यों काम करता है? मेरे द्वारा यह कैसे किया जा सकता है?

धन्यवाद।

उत्तर

17

उपयोग .prop() बजाय .attr()

$(this).prop('checked', true); //true to check else false uncheck 

आपका कोड

के रूप में सरल किया जा सकता
$("#rowchkall").change(function() { 
    $("input:checkbox.rowchk").prop('checked',this.checked); 
}); 

एक अच्छा पढ़ें .prop() vs .attr()

+1

+1 दस्तावेज़ों को जोड़ने के लिए और एक उदाहरण दिखाते हुए कि प्रोप 2 तर्क एक बूलियन – jmort253

+0

धन्यवाद आपके उत्तर के लिए बहुत कुछ है। आपके उदाहरण में, क्यों न केवल इसे 'सत्य' या 'झूठा' सेट करें? 'This.checked' का उपयोग करने का क्या फायदा है? – user1995781

+0

मुझे लगता है कि यह केवल '$ ("। Rowchk ") में संशोधित किया जा सकता है क्योंकि' चेक' विशेषता केवल चेकबॉक्स के लिए है .. –

4

कोशिश के बजाय .prop() उपयोग करने के लिए .attr()

$("#rowchkall").change(function(){ 
    $("input:checkbox[class=rowchk]").prop('checked', this.checked); 
}); 

और आपको अपनी संपत्ति बदलने के लिए सभी तत्वों पर iterate की आवश्यकता नहीं है।

1
$("#rowchkall").change(function(){ 
    if($(this).is(':checked')){ 
     $("input.rowchk[type=checkbox]").each(function() { 
      alert("set checked"); 
      $(this).attr('checked',true); 
     }); 
    }else{ 
     $("input.rowchk[type=checkbox]").each(function() { 
      $(this).attr('checked', false); 
     }); 
    } 
}); 
संबंधित मुद्दे