2011-03-22 30 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據我所知

相關問題