将事件处理程序附加到多个文本框(具有类似的图案ID)?

我有几个文本框是根据我从其他来源获得的一些结果动态生成的。我想在这些文本框中添加一些事件处理程序来捕获任何按键,并确保输入的任何内容都是数字。

我根据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开发人员)所以我不知道你能做到这一点。我真的很喜欢它,更整洁。感谢那!
额外 作者 sxthomson,

您可以使用 开头选择器

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

请注意,如果您是在动态创建这些内容,则可能需要使用 live

$('input[id^="route"]').live('keyup', function(){...
3
额外

那这个呢?

for(i=0;i
1
额外