jQuery

2010-09-14 2 views
5

के माध्यम से चेक किए गए विशेषता को जोड़ना मैं निम्नलिखित विजेट का उपयोग कर रहा हूं http://www.erichynds.com/examples/jquery-ui-multiselect-widget/demos/ यह अब तक बहुत अच्छा काम करता है, लेकिन मुझे विशेषताओं को जोड़ने में कुछ मदद चाहिए। फायरबग का उपयोग करने में, मैंने देखा है कि चेकबॉक्स पर क्लिक करके चेक की गई विशेषता प्रकट नहीं होती है क्योंकि मैं इसकी अपेक्षा करता हूं। मेरे कोड में, मैंने विजेट को संशोधित किया है, मैं चेक की विशेषता को हटाने के लिए कोड जोड़ने में सक्षम हूं।jQuery

this.removeAttribute(\'checked\'); this.checked=false; 

यदि आइटम पहले से चेक किया गया था। मैं इस कोड का उपयोग करने में सफल रहा हूं

this.setAttribute(\'checked\', \'checked\'); this.checked=true; 

यदि पेज लोड होने पर आइटम अनचेक किया गया था।

जब मैं चेकबॉक्स पर कोड के दोनों सेट उपयोग करने में सक्षम होने की जरूरत है मेरे समस्या आ रही है, मैं का प्रयास किया है निम्नलिखित

onclick="if($(this).attr(\'checked\') == \'true\') { this.setAttribute(\'checked\', \'checked\'); this.checked=true; } else { this.removeAttribute(\'checked\'); this.checked=false; } 

कोड की जाँच की (की विशेषता निकाल देंगे अगर हाथ से पहले जाँच की पृष्ठ लोड पर), लेकिन जब मैं विशेषता जोड़ने के लिए चेकबॉक्स पर क्लिक करने का प्रयास करता हूं (यदि पृष्ठ लोड पर चेक नहीं किया गया है), कुछ भी नहीं होता है।

किसी भी मदद के लिए धन्यवाद, और मेरे खराब कोडिंग के लिए खेद है।

+0

धन्यवाद दोस्तों की स्थापना के लिए। इसका कारण यह है कि मैं ऑप्टग्रुप हेडर पर टॉगल() ईवेंट करने का प्रयास कर रहा हूं।जब कोई उपयोगकर्ता इसे क्लिक करता है, तो इससे जुड़े अनुभाग को तोड़ दिया जाएगा, हालांकि, यह चेक किए गए आइटम दिखाएगा। यह काम करता है अगर आप किसी आइटम को चेक/अनचेक किए बिना ईवेंट को आगे और पीछे टॉगल करते हैं। हालांकि मेरी समस्या यह है कि यदि आपके पास पृष्ठ लोड पर चेक किया गया कोई आइटम है, तो टॉगल() काम करेगा। यदि आप इसे अनचेक करते हैं, तो टॉगल() उस आइटम के लिए काम नहीं करेगा क्योंकि मैं चेक किए गए विशेषता को देख रहा हूं। क्या इसे करने का और कोई तरीका है? – Chris

+0

आपको डबल कोट्स – RobertPitt

उत्तर

1

फ़ायरबग का उपयोग करने में, मैंने देखा है कि चेकबॉक्स पर क्लिक करके चेक की गई विशेषता दिखाई नहीं देगी क्योंकि मैं इसकी अपेक्षा करता हूं।

आपको checked विशेषता क्यों चाहिए? checked प्रॉपर्टी आपको सामान्य रूप से आवश्यक सभी कार्यक्षमता प्रदान करती है, यानी बॉक्स को चेक करने से element.checkedtrue और इसके विपरीत, यानी element.checked संशोधित करने से बॉक्स की स्थिति बदल जाएगी।

+0

में लिपटे सिंगल कोट्स से बचने की आवश्यकता नहीं है, अंत में मैं शो/छुपा प्रभाव के लिए ऑप्टग्रुप को टॉगल करने के लिए चेक की गई संपत्ति का उपयोग कर रहा हूं। यदि कोड पाता है कि टॉगल ईवेंट ट्रिगर होने पर कोई आइटम चेक किया जाता है, तो चेक किए गए आइटम दिखाएं, अगर उन्हें छुपाएं। क्या इस लक्ष्य को पूरा करने का कोई और तरीका है? – Chris

+0

उदाहरण के लिए, आपको तत्व की 'चेक' संपत्ति का उपयोग करने की आवश्यकता है। '$ ('# आईडी') [0] .checked' – casablanca

2

मैंने देखा है कि केवल चेकबॉक्स पर क्लिक करके जाँच की विशेषता

बिल्कुल सही है प्रकट नहीं होता है। checked विशेषता इनपुट की वर्तमान जांच के अनुरूप नहीं है; यह वास्तव में एचटीएमएल दस्तावेज़ से शुरुआती जांच के अनुरूप है, चेकसेट जो फॉर्म रीसेट होने पर बहाल किया जाएगा।

आईई विशेषता जोड़ता है क्योंकि आईई गलत है। getAttribute/setAttribute आईई में टूटा हुआ है- कभी भी उन्हें HTML दस्तावेज़ पर उपयोग न करें! -उन्होंने वास्तव में संपत्ति सेट की है, न कि विशेषता।

यह defaultChecked संपत्ति है। लेकिन आप checked विशेषता सेट करने का प्रयास क्यों कर रहे हैं? लगभग कोई अच्छा कारण नहीं है। आम तौर पर सादा पुराना checked संपत्ति वह है जिसे आप ढूंढ रहे हैं।

14

jQuery में निकालते समय एक विशेषता का उपयोग

this.removeAttr('checked'); 

के लिए और एक विशेषता का उपयोग

this.attr('checked', 'checked');