javascript - jquery attr('चेक', 'चेक') केवल एक बार काम करता है




checkbox checked (2)

आप विशेषता को बदल सकते हैं, और यदि तत्व छूटा हुआ है, तो वह संपत्ति को भी बदल देगा। एक बार जब तत्व इस प्रारंभिक स्थिति को छोड़ देता है, तो विशेषता बदलना अब संपत्ति को प्रभावित नहीं करता है। सही व्यवहार शायद ब्राउज़र के बीच बदलता है।

Instead of .attr('checked', 'cheked') use .prop('checked', true)

मुझे निम्नलिखित jquery / चेकबॉक्स व्यवहार के कारण खोजने में समस्या है।

$( this.obj + ' table.sgrid-content > thead > tr > th > input.select_all' ).on( 'click' , {grid:this} , function(event){

var grid = event.data.grid;

if( $(this).is(':checked') ){

    $( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).attr('checked','checked');
    $( grid.obj + ' .sgrid-content > tbody > tr > td > input.select ' ).parents('tr').addClass('ui-state-highlight');

} else {

    $( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).removeAttr('checked');
    $( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).parents('tr').removeClass('ui-state-highlight');

}

});

कोड निम्नानुसार काम करने का इरादा है: - input.select_all पर क्लिक करें ईवेंट को ट्रिगर करता है - यदि input.select_all चेक किया गया है: table.sgrid-content के भीतर चयन के रूप में चिह्नित सभी चेकबॉक्स में विशेषता विशेषता जोड़ें - यदि नहीं: 'चेक' को हटाएं 'सभी इनपुट से विशेषताएँ। आइटम का चयन करें।

फिर भी एक और सरल ग्रिड समारोह। और यह काम करता है। अजीब हिस्सा यह है कि यह केवल एक बार काम करता है। इसका मतलब है, आप सभी चेकबॉक्स का चयन कर सकते हैं और उन्हें अचयनित कर सकते हैं। उस ऑपरेशन के बाद "सभी का चयन करें" फ़ंक्शन काम करना बंद कर देता है।

एक और अजीब बात यह है कि, जब मैं फायरबग के साथ डोम तत्वों की जांच करता हूं तो वे सभी चेक-इन 'चेक' एटआर बन जाते हैं, लेकिन वे प्रदर्शित होते हैं और व्यवहार करते हैं क्योंकि वे चेक नहीं किए जाते हैं।

चयनकर्ताओं के रूप में काम करना चाहिए। यूई-स्टेट-हाइलाइट जोड़ने / निकालने के साथ कोड भाग हर समय काम करता है।

स्पष्टीकरण का शब्द: ग्रिड - वह ऑब्जेक्ट है जिसे मैं grid.obj (मूल रूप से एक सीरेटैन div की आईडी) प्राप्त करने के लिए पास करता हूं

कृपया मुझे अपनी राय दें।


निकालने के बजाय prop ('चेक', सत्य / गलत) का उपयोग करें

$('input[name=foo]').prop('checked', true);
$('input[name=foo]').prop('checked', false);




checked