إرفاق معالجات الأحداث إلى مربعات نصية متعددة (مع معرف مزخرف مماثل)؟

لدي العديد من مربعات النصوص التي يتم إنشاؤها ديناميكيًا استنادًا إلى بعض النتائج التي أحصل عليها من مصدر آخر. أريد إضافة بعض معالجات الأحداث إلى مربعات النص هذه للقبض على أي مفتاح ضغط ، والتأكد من أن أي شيء تم إدخاله رقمي.

أقوم بإنشاء مربعات النص هذه استنادًا إلى طول الصفيف داخل استجابة JSON ، مثل:

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 Desktop إذا كنت أمينا) لذا لم أكن أعلم أنك تستطيع القيام بذلك. أنا حقا أحب ذلك رغم ذلك ، أكثر إتقانا. شكرا على ذلك!
وأضاف المؤلف sxthomson, مصدر

يمكنك استخدام يبدأ بـ selector

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

لاحظ أنه إذا كنت تنشئ هذه العناصر بسرعة ، فقد تحتاج إلى إرفاق الحدث باستخدام مباشر </م> :

$('input[id^="route"]').live('keyup', function(){...
3
وأضاف

ماذا عن هذا؟

for(i=0;i
1
وأضاف