2010-02-26 15 views
20

मैं एक JQuery इस तरह एक के रूप में समारोह "सभी की जाँच" उपयोग करना चाहते हैं का चयन करें: http://jetlogs.org/jquery/jquery_select_all.htmljQuery js सरणी नाम के साथ सभी चेक बॉक्स

मेरे समस्या मैं एक php स्क्रिप्ट से मेरी प्रपत्र पैदा कर रहा हूँ, और मैं है मुझे पता नहीं है कि मेरे पास पहले से कितने चेकबॉक्स होंगे। मैं "सरणी" नामकरण सम्मेलन का उपयोग अपने $ _POST डेटा में सभी चयनित चेकबॉक्स मूल्यों को प्राप्त करने में सक्षम हो ... तो मेरे चेक बॉक्स की तरह कर रहे हैं:

<input type="checkbox" name="items[]" value="<?php echo $id ?>"> 

लेकिन इस JQuery घोषणा काम नहीं करता है:

$("input[@name=items[]]").each(function()  
{  
    this.checked = checked_status;  
}); 

शायद इसलिए है क्योंकि "[]" मेरी "आइटम" के JQuery घोषणा को खराब करता अंत में ... मैं लिखने के लिए @ नाम करने की कोशिश की = आइटम [] इस तरह: "@ नाम = आइटम [] ", और [और] से पहले कुछ एंटी-स्लैश डालने के लिए उन्हें विशेष वर्णों के रूप में नहीं माना जाता है लेकिन यह काम नहीं करता ...

अगर कोई समाधान जानता है और इसे साझा करने के इच्छुक है तो यह बहुत अच्छा होगा !! :)

+0

कक्षा का उपयोग करने का प्रयास करें और खोज इंजन में jQuery का निर्माण लूप के साथ सभी तत्वों को लूप करने के बजाय आपके लिए काम करेगा! – Kennethvr

+0

चेक_स्टैटस का मूल्य क्या है? यह कहाँ तय है? –

उत्तर

51

\\ (कोई जगह नहीं) के साथ आंतरिक ब्रैकेट से बचें - इसे समस्या को ठीक करना चाहिए।

इस चयनकर्ता मेरे लिए काम करता है:

सभी की
$('input[name=items\\[\\]]') 
+0

नाप जो काम नहीं करता है, जैसा कि मैंने अपनी पोस्ट में कहा था: "... और कुछ एंटी-स्लैश (= \) को [और] से पहले रखना ..." – Piero

+0

मेरा संपादन जांचें - आपको अपने से @ हटा देना चाहिए चयनकर्ता और डबल बैकस्लाश का उपयोग करें – rochal

+0

YupYup !! एक जादू की तरह काम करता है! मदद के लिए आप सबका शुक्रिया! अन्य प्रस्तावित समाधान भी काम कर सकते हैं! लेकिन यह लागू करने के लिए सबसे आसान लगता है! :) – Piero

4

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

कक्षा विशेषता का उपयोग करने का प्रयास करें, यह उन चीजों के लिए बनाया गया है जिन्हें आप करना चाहते हैं!

एक और बात यह है कि आपके कोड में, आप केवल अपने चेकबॉक्स को 'चेक' पर सेट कर सकते हैं, लेकिन कभी भी अनचेक नहीं कर सकते हैं, यह कोड आपके चेकबॉक्स को सही या गलत चेक करने के लिए सेट करेगा, जो क्लिक किए गए गुण के रूप में मिलता है तत्व।

आप कुछ इस तरह कर सकते हैं:

एक आईडी

<input type="checkbox" id="checkAll"> 

तब सभी चेक बॉक्स कि जाँच की जानी चाहिए पर सेट के साथ अपने चेक सभी चेकबॉक्स सेट/एक वर्ग अनचेक

<input type="checkbox" class="checked"> 

और आप jQuery

$("#checkAll").click(function(){ 
var checkedValue = $(this).attr("checked"); 
$("input.checked").attr("checked", checkedValue); }); 
में ऐसा कुछ कर सकते हैं

इस आईडी checkAll

+0

ने मुझे jquery फ़ंक्शन के साथ मदद की, धन्यवाद! – noname

8

साथ एक के रूप में एक ही जाँच की विशेषता के लिए जाँच की वर्ग के साथ सभी चेक बॉक्स बदल जाएगा @ के लिए

$('input[name="items[]"]') 

कोई ज़रूरत नहीं उपयोग करने का प्रयास और " का उपयोग करें। ध्यान दें कि उद्धरण के बाहर चयनकर्ता ' हैं। अन्यथा आप पार्स त्रुटि का कारण बन सकते हैं।

+0

धन्यवाद, @ एएमओ। यह काम किया। डबल बैकस्लाश के साथ स्वीकृत उत्तर का दृष्टिकोण काम नहीं करता है (ऐसा लगता है कि नए संस्करण इसका समर्थन नहीं करेंगे)। – Rolice

1
$("input[name='smsid[]']") 

यह कोड मेरे लिए ठीक काम करता है ...

+2

समझाते हुए कि आपका उत्तर क्यों काम करता है, आपकी पोस्ट को और अधिक सहायक बना देगा। –

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