फ़ील्ड का नाम foo
नहीं है, यह foo[]
है। आदर्श रूप में
$("input[name^='foo']:checked:enabled",'#myform');
, यदि आप ऐसा करने में सक्षम हो जाएगा:: आप attributeStartsWith का भी उपयोग कर सकता है
$("input[name='foo[]']:checked:enabled",'#myform');
लेकिन जैसे this answer बताते हैं, jQuery इस का उपयोग करता है attr=value
हालत के value
भाग पार्स करने के लिए:
(['"]*)(.*?)\3|)\s*\]
\ 3 उद्घाटन युक्त समूह जा रहा है उद्धरण, जो अजीब तरह से कई उद्घाटन उद्धरण, या कोई उद्घाटन उद्धरण होने की अनुमति नहीं है। * *? फिर उद्धरण समेत किसी भी चरित्र को पार्स कर सकते हैं जब तक कि यह पहले ']' चरित्र को हिट न करे, मैच समाप्त कर दें। बैकस्लैश-एस्केपिंग सीएसएस विशेष पात्रों के लिए कोई प्रावधान नहीं है, इसलिए आप jQuery में मनमानी स्ट्रिंग मान से मेल नहीं खा सकते हैं।
दूसरे शब्दों में, जैसे ही jQuery पहले ]
पर जाता है, यह सोचता है कि मान खत्म हो गया है। तो आप शुरुआत के साथ अटक गए हैं या शुद्ध डोम तत्वों का उपयोग करते हुए, जैसा कि उत्तर भी बताता है।
सुपर duper महत्वपूर्ण संपादित:
इस बग तय हो गई है, जाहिरा तौर पर। आप ऊपर दिए गए कोड को "आदर्श" के रूप में वर्णित कोड का उपयोग करने में सक्षम होना चाहिए।
स्रोत
2009-04-14 13:59:11
UMN, क्या तुम वहाँ काम करता है ठीक है, बस अपने चयनकर्ता को दोहरे उद्धरण चिह्नों का उपयोग करें। :) – cgp
हां; जागरूक रहें मेरा प्रारंभिक उत्तर ऐसा करने का सबसे अच्छा तरीका नहीं है। jQuery को चयनकर्ता में ब्रैकेट के साथ समस्याएं होती थीं लेकिन यह तय कर दिया गया है, इसलिए आपको अपने पास रखने में सक्षम होना चाहिए, केवल चयनकर्ता के चारों ओर डबल कोट्स का उपयोग करें। –