2009-11-03 19 views
6

पर काम नहीं कर रहा है मुझे एक ग्रिडव्यू मिला है जो एक टेबल के रूप में प्रस्तुत करता है। मेरे पास "जोड़ें" बटन है और उस पर क्लिक करके, यह तालिका में एक नई पंक्ति बनाएगा। पंक्ति निर्माण jQuery में "क्लोन (सत्य)" विधि का उपयोग करके किया जाता है। क्लोन पंक्ति एक डमी पंक्ति है जो ग्रिडव्यू में छिपी हुई है। मैंने टेक्स्टबॉक्स के लिए jQuery डेटपिकर असाइन किया है। यह मौजूदा पंक्ति के लिए ठीक काम करता है। लेकिन जब मैं नई गयी पंक्ति के लिए डेटपिकर टेक्स्टबॉक्स पर क्लिक करता हूं, तो यह नहीं खुलता है। यह मौजूदा पंक्ति के लिए खुलता है। क्या समस्या हो सकती है?jQuery डेटपीकर नई जोड़ा पंक्ति

मेरे कोड की तरह है:

$("input[name $= 'txtDateOrdered']").datepicker({ 

     showButtonPanel  : true 
    , showOn    : 'button' 
    , buttonImageOnly  : true 
    , buttonImage   : '../../Image/calendar.gif' 
}); 
+0

क्या आपके पास कोई लिंक या कुछ है? क्या आप वाकई त्रुटि कंसोल में कोई त्रुटि नहीं हैं? –

+0

आपको कुछ स्रोत कोड या बेहतर काम करना चाहिए, एक कामकाजी उदाहरण। –

उत्तर

7

हार्ड अपने कोड को देखने के बाहर के साथ बताने के लिए लेकिन ..

इस पृष्ठ पर कहा जाता है इनपुट करने के लिए datepicker आवंटित करने के लिए इस्तेमाल किया jQuery के कारण शायद है भार। इसलिए जब आप इनपुट क्लोन करते हैं तो नए क्लोन इनपुट में डेटपिकर नहीं होता है (क्योंकि यह पेज लोड पर मौजूद नहीं था)।

क्लोन विधि को कॉल करने के बाद आपको डेटपिकर को नए इनपुट में हुक करने की आवश्यकता होगी।

3

मुझे लगता है कि आपने किसी दिए गए चयनकर्ता से मेल खाने वाले सभी तत्वों के लिए दस्तावेज़ पर डेटपिकर जोड़ा है। यह इसे भविष्य में बनाए गए तत्वों में नहीं जोड़ता है। ऐसा करने के लिए, आप jQuery live की जांच करनी चाहिए:

सभी मौजूदा के लिए एक घटना (जैसे क्लिक करें) के लिए एक हैंडलर बांधता - और भविष्य - मिलान किया तत्व।

+0

▼ काम नहीं किया। कोई अन्य विचार? – superachu

0

शायद क्लोन टेक्स्टबॉक्स में मूल आईडी के समान आईडी है, इस प्रकार कैलेंडर नियंत्रण को भ्रमित कर रहा है? यदि नहीं, तो कृपया अधिक कोड और संभावित त्रुटि संदेश प्रदान करें।

+0

काम नहीं किया ??? – superachu

0

आप प्रक्रिया को प्रबंधित करने के लिए किसी ईवेंट को भी जोड़/मजबूर कर सकते हैं। उदाहरण के लिए, मेरे पास एक स्थान है जहां मैं एक अतिरिक्त आइटम को जोड़ता हूं और स्वत: पूर्ण करता हूं। मैं "परिवर्तन" घटना इस प्रकार का प्रबंधन (एक .change() फ़ंक्शन के अंदर):

$(this).change(); // fire change event (to be used in other user controls) 

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

/* apply autocomplete function */ 
function myAddAuto() 
{ 
    $(".cptEntryArea").autocomplete("mywebservice/myService.asmx/GetMyAutocomplete", { 
     dataType: 'json', 
     data: {}, 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     parse: function(data) { return myAutocompleteJSONParse(data); }, 
     maxRows: 100, 
     formatItem: function(row) { return row["Description"] + ' (' + row["MyCode"] + ')' }, 
     minChars: 2, 
     matchSubset: false, 
     scrollHeight: 100, 
     width: 300 
    }); 
}; 

वहाँ अन्य तरीके हैं, लेकिन मूल आधार एक ही है - पंक्ति आप तालिका में जोड़ भीतर नए जोड़े संस्था के लिए संचालकों जोड़ें।

0

इस प्रयास करें:

$("row-you-are-cloning").clone().appendTo("your-table").datepicker({ 
    showButtonPanel  : true, 
    showOn    : 'button', 
    buttonImageOnly  : true, 
    buttonImage   : '../../Image/calendar.gif' 
}); 
10

आप पहली क्लोन तत्व से "hasDatepicker" वर्ग निकालना होगा।

$(".selector").removeClass('hasDatepicker').datepicker({ 
     showButtonPanel  : true 
    , showOn    : 'button' 
    , buttonImageOnly  : true 
    , buttonImage   : '../../Image/calendar.gif' 
}); 
+1

मुझे बस एक ही समस्या थी, और यह मेरे लिए इसे ठीक करने की कुंजी थी। धन्यवाद मिया। –

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