2011-08-23 36 views
5

我正在開發一個使用Rails和jQuery的應用程序。我想通過輸入表單提交一個id整數值,但仍然在填寫表單時向用戶顯示一個友好的文本值。文本輸入字段使用jQuery自動完成,因此一旦用戶選擇了一個條目,整數值將被放入輸入字段。有什麼方法可以顯示與實際提交的值不同的值嗎?輸入[type = text]提交的值不同於顯示

+0

怎麼樣移動部分,找出從文本到導軌的數字? – Dani

+0

我可以做到這一點,但我真的想保持我的控制器儘可能乾淨。此外,我有這種(大型)的多個案例,所以我不得不在控制器中添加相當多的自定義代碼。我想知道是否有一些預建插件或方法來做到這一點。如果不是,我想我最終會把它放入控制器。 – Pogopuschel

+0

你以前可以在datagrids中的action actions中做這樣的事情) – SuperUberDuper

回答

1

嘗試使用組合框的功能爲jQuery用戶界面自動完成:

http://jqueryui.com/demos/autocomplete/#combobox

的期權的價值屬性是什麼獲得與形式,而不是顯示文本一起發送。

+0

哦,我完全忽略了組合框的例子!謝謝! – Pogopuschel

+0

有沒有辦法做到這一點,而無需添加下拉框,並只有該文本框? – lynnyi

+0

@lynnyi,你會在哪裏顯示自動完成的選項? –

0

您可以使用

$('myform').submit(function() { /* your thing here */ }); 

,並在用戶提交你的東西將運行。

+0

謝謝,我明白了。但那意味着我仍然需要通過保持跟蹤並替換所有我想修改的值來完成許多手動工作。在那種情況下,我可以將它放入控制器,這將是一個更清潔的解決方案。或者我忽略了什麼? – Pogopuschel

1

我明白你想要做什麼。 我做了同樣的事情下降。 雖然從來沒有嘗試過一個文本框!:( 我所做的是,下拉列表顯示數據庫中的條目名稱,當用戶提交表單時,數據庫中的ID被傳遞。 我希望那正是你想要的。 我把代碼下同 我知道這是不是你在找什麼,但它可能給你一個提示

在視圖中:!

<%= f.select: facilitator_group_id,FacilitatorGroup.all.map {| fg | [fg.name,fg.id]}%>

FacilitatotGroup是我的模型名稱。

乾杯!嗨,我也覺得我們使用textfield的原因是用戶輸入他們想要存儲在數據庫中的數據。 因爲你的原因,爲什麼不能使用下拉菜單?

+0

您的代碼僅適用於下拉菜單。選項標籤具有文本和值屬性,文本框不具有。我無法使用下拉菜單,因爲我正在使用jQuery自動完成功能。 – Pogopuschel

1

或者,您還可以保留隱藏的輸入字段,並使用「更改」事件來保持每次用戶更改原始字段時更新隱藏的輸入字段。

相關問題