我完全是新的JavaScript,我可能咬的比我可以咀嚼,但我試圖讓我的Rails網站上的jQuery autcomplete小部件工作。jQuery自動完成 - 如何查看項目標籤,但提交項目值
我有一個名爲「鏈接」的頁面,我希望能夠將一個人分配給一個鏈接。使用自動完成我應該能夠有一個文本框下拉列表中的自動完成的人民名稱,並選擇時,人名保持在文本框中。但是當表單被提交時,我不希望與表單一起發送人員姓名,我想要用表單發送人員ID。
所以問題是如何讓人員名稱一旦選擇,留在文本框中,但一旦提交了人員ID提交。
在Rails,這是怎麼了,我從我的個人控制器提供的JSON數據:
def index
if params[:term]
@people = Person.find(:all,:conditions => ['given_name LIKE ?', "#{params[:term]}%"], :limit => 5)
else
@people = Person.all
end
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @people.to_json(:only => [:id, :given_name]) }
end
end
以上輸出以下JSON文本:
[{"person":{"id":1,"given_name":"dale"}},{"person":{"id":2,"given_name":"sally"}},{"person":{"id":3,"given_name":"joe"}}]
使用jQuery自動完成插件,如何我是否在建議的匹配中出現'given_name',一旦選定,就將'given_name'保留在文本框中,但在提交表單時發送'id'值。
我想我需要在JavaScript中指定要顯示的標籤以及要發送的值。正如我剛剛得到的JavaScript的懸掛,如果你能解釋你的答案如何工作,將不勝感激。謝謝。
感謝您的回覆。我認爲你的解決方案可以工作,但我希望能夠發送不同於文本框中顯示的值的能力將被內置到jQuery小部件中。這似乎應該是可能的,沒有隱藏的領域,但我沒有抓住一些東西。如果這是不可能的,那麼我將使用隱藏的字段解決方案。 – Oscar 2010-07-11 02:30:18
我重新審查了jQuery小部件文檔,你的回答是正確的。發送不同於文本字段中顯示的值的方式(如在個人的ID中,而不是在所選的個人姓名中)是通過隱藏字段。 我想我是通過嘗試使小部件本身提供隱藏的價值而使其變得過於複雜。文檔中的示例清楚地表明該小部件與隱藏字段結合使用。謝謝。 – Oscar 2010-07-11 03:57:31