ईवेंट हैंडलर को एकाधिक टेक्स्टबॉक्स में संलग्न करें (समान पैटर्न आईडी के साथ)?

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

मैं जेएसओएन प्रतिक्रिया के भीतर एक सरणी की लंबाई के आधार पर इन टेक्स्टबॉक्स उत्पन्न करता हूं, जैसे:

for(i=0;i
0

3 उत्तर

आपने jQuery के साथ प्रश्न टैग किया है, इसलिए मुझे आश्चर्य है कि आप अपनी सामग्री बनाने के लिए लाइब्रेरी का उपयोग क्यों नहीं कर रहे हैं:

var content = [];
for (var i = 0; i < data.routesout.length; ++i) {
  content.push($('', { 'for': 'route' + i, text: data.routesout[i].name }));
  content.push($('<input/>', { change: yourEventHandler, type: 'text', name: 'route' + i, id: 'route' + i, value: date.routesout[i].percent, change: yourEventHandler }));
}

इसे इस तरह से करके, आप तत्व बनाकर तत्व द्वारा तत्व को बाध्य कर सकते हैं। (मैंने एक उदाहरण के रूप में "परिवर्तन" का उपयोग किया था, लेकिन आप किसी भी घटना के लिए हैंडलर को बाध्य कर सकते हैं।)

अंत में, आप सभी बनाए गए तत्वों को जोड़ सकते हैं, हालांकि आप चाहते हैं, या आप उन्हें सरणी बनाने के बजाए जोड़ सकते हैं।

3
जोड़ा
मैं jQuery के लिए बहुत नया हूं (और सामान्य रूप से वेब प्रोग्रामिंग, डेस्कटॉप के अधिक .NET डेवलपर अगर मैं ईमानदार हूं) तो मुझे नहीं पता था कि आप ऐसा कर सकते हैं। मुझे वास्तव में यह पसंद है, बहुत साफ है। उसके लिए धन्यवाद!
जोड़ा लेखक sxthomson, स्रोत

आप के साथ शुरू होता है चयनकर्ता का उपयोग कर सकते हैं

$('input[id^="route"]').keyup(function(){...

ध्यान दें कि यदि आप इन्हें मक्खी पर बना रहे हैं, तो आपको लाइव </का उपयोग करके ईवेंट संलग्न करने की आवश्यकता हो सकती है। em> :

$('input[id^="route"]').live('keyup', function(){...
3
जोड़ा

इस बारे में क्या?

for(i=0;i
1
जोड़ा