2011-03-22 35 views
0

我正在制作一个Google即时类型的远程建议脚本,并在我正在创建的网站上使用ajax。将自定义信息添加到文本字段以使用javascript

现在我有这样的:

<input type="text" name="spanishtitle" onkeyup="suggest(this, 'title_es');" onblur="fill();" /> 

,我想脚本动议的onkeyup到jQuery的电话,所以我加了这个

$('.suggestable').live('keyup', (function() { suggest(this); })); 

,改变了以上这

<input class="suggestable" type="text" name="spanishtitle" onblur="fill();" /> 

但我错过了'title_es'参数告诉ajax处理程序我在找什么。

所以我想知道的基本上是,如果有一种方法可以将此参数添加到对象,所以我可以通过某种方式从suggest()中访问它。

回答

2

你可以把它添加到您的HTML ...

<input type="text" name="spanishtitle" onblur="fill();" data-title="title_es" /> 

,然后访问它的jQuery ...

$('.suggestable').live('keyup', 
     function() { suggest(this, $(this).attr('data-title')); } 
); 

data-前缀属性在HTML5规范,并打算非常有用。

最后,使用内联事件没有进一步的借口属性:)

-1

你可以把它作为一个属性添加到输入,是这样的:

<input data-lookfor='title_es' class="suggestable" type="text" name="spanishtitle" onblur="fill();" /> 

那么你就可以访问它在jQuery的.attr()

var look_for = $(this).attr('data-lookfor'); 
+0

添加任意命名的属性是一个坏主意。额外的属性应该有以“data-”开头的名称,即“data-lang”或“data-field”等。 – Stephen 2011-03-22 01:36:23

+0

这是一个很好的观点。我忘记了这些数据 - 在html5规范中。我编辑了我的答案,所以它不会混淆这种情况。 – 2011-03-22 15:41:01

0

其指定为元件的ID,然后

$('.suggestable').live('keyup', function() { 
    suggest(this, $(this).attr("id")); 
}); 

data-*属性是html5据我所知

相关问题