2013-08-20 11 views
16

मेरे पास प्रत्येक पंक्ति में एक चेकबॉक्स वाला HTML तालिका है।
मैं टेबल पर लूप करना चाहता हूं और देख सकता हूं कि चेक किए गए चेकबॉक्स हैं या नहीं।
निम्नलिखित काम नहीं करता है:एचटीएमएल टेबल पर लूप करें और चेकबॉक्स चेक करें (JQuery)

$("#save").click(function() { 
    $('#mytable tr').each(function (i, row) { 
     var $actualrow = $(row); 
     checkbox = $actualrow.find('input:checked'); 
     console.log($checkbox); 
}); 

यह प्रिंट कंसोल में निम्नलिखित:

[prevObject: jQuery.fn.jQuery.init[1], context: tr, selector: "input:checked", constructor: function, init: function…]

प्रति पंक्ति किसी भी चेकबॉक्स चेक किया गया है या नहीं की परवाह किए बिना।

अद्यतन
एक ही मुद्दे के साथ:

$('#mytable tr').each(function (i, row) {                         
    var $actualrow = $(row); 
    $checkbox = $actualrow.find(':checkbox:checked'); 
    console.log($checkbox); 
}); 
+3

यूप, एक jQuery ऑब्जेक्ट कंसोल पर मुद्रित है, जो सामान्य है। क्या आपने इसकी 'लंबाई' संपत्ति की जांच की? –

+1

क्या आपने '$ actualrow.find ('input') के साथ प्रयास किया है। (': चेक') है;' –

+0

लॉग '$ checkbox.length'। लंबाई शून्य नहीं है? –

उत्तर

48

इस बजाय का उपयोग करें: input[type="checkbox"] मतलब यह है कि इस के साथ प्रत्येक <input /> मिलान हो जाएगा:

$('#save').click(function() { 
    $('#mytable').find('input[type="checkbox"]:checked') //... 
}); 

मुझे तुम समझा क्या चयनकर्ता करता है चलो प्रकार विशेषता typecheckboxके बराबर हैउसके बाद: :checked सभी चेक किए गए चेकबॉक्स से मेल खाएगा।

आप कर सकते हैं के साथ इन चेक बॉक्स के ऊपर पाश:

$('#save').click(function() { 
    $('#mytable').find('input[type="checkbox"]:checked').each(function() { 
     //this is the current checkbox 
    }); 
}); 

यहाँ JSFiddle में डेमो है।


और यहाँ एक डेमो जो वास्तव में आपकी समस्या हल करती है http://jsfiddle.net/DuE8K/1/ है।

$('#save').click(function() { 
    $('#mytable').find('tr').each(function() { 
     var row = $(this); 
     if (row.find('input[type="checkbox"]').is(':checked') && 
      row.find('textarea').val().length <= 0) { 
      alert('You must fill the text area!'); 
     } 
    }); 
}); 
+0

मैं व्यक्तिगत रूप से प्राप्त करना चाहता हूं।यदि एक चेकबॉक्स चेक किया गया है लेकिन एक ही पंक्ति में टेक्स्टबॉक्स भरना नहीं है, तो मैं एक चेतावनी – Jim

+0

ठीक दिखाना चाहता हूं, मुझे आपको एक उदाहरण दें। –

+0

@Jim इस समाधान की जांच करें http://jsfiddle.net/DuE8K/1/ –

-1

आपके कोड में }); गुम है।

$("#save").click(function() { 
    $('#mytable tr').each(function (i, row) { 
     var $actualrow = $(row); 
     $checkbox = $actualrow.find('input:checked'); 
     console.log($checkbox); 
    }); 
}); 
0
निम्नलिखित कोड का टुकड़ा/कि क्या पृष्ठ पर कम से कम एक चेकबॉक्स चेक किया गया है के आधार पर एक बटन को निष्क्रिय सक्षम बनाता है देखना ।
$('input[type=checkbox]').change(function() { 
    $('#test > tbody tr').each(function() { 
     if ($('input[type=checkbox]').is(':checked')) { 
      $('#btnexcellSelect').removeAttr('disabled'); 
     } else { 
      $('#btnexcellSelect').attr('disabled', 'disabled'); 
     } 
     if ($(this).is(':checked')){ 
      console.log($(this).attr('id')); 
     }else{ 
      console.log($(this).attr('id')); 
     } 
    }); 
}); 

यहाँ JSFiddle में डेमो है।

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