0

我有一种输入文本必须触发“keydown”上的功能。为了识别这种类型的输入,我使用了 ID #autocomplete。所以

$('#autocomplete').keydown(function(){
   //function autocomplete
});

问题是我在同一个页面中有两次输入,所以 jquery 搜索第一个 id,而忽略第二个。(我使用的是旧的 jquery 版本,1.3)。

我改用$("input#autocomplete")解决了它。它有效,但它是最佳实践吗?我猜ID必须是唯一的。我可以改用名称,但两者都对代码的其他部分有影响(对设计,名称对服务器部分接收表单参数)。

哪个是最好的解决方案?

4

2 回答 2

2

一个确实id应该是唯一document。如果你真的不能让它独一无二,另一种选择是你的选择器,或者添加一个classinput然后选择它作为$(.class)

id 属性为元素分配一个唯一标识符(可以由 SGML 解析器验证)。

于 2012-08-24T11:12:34.967 回答
2

如果您对它们对 和 的影响有疑问或class由于name它们的影响,您总是可以使用属性。designserver

<input data-id="my-id"/>

然后像这样选择它

$("[data-id=my-id]")

具有data-前缀的自定义属性是 HTML5 中的标准。

于 2012-08-24T11:14:32.520 回答