2011-08-23 46 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

或者,您还可以保留隐藏的输入字段,并使用“更改”事件来保持每次用户更改原始字段时更新隐藏的输入字段。

相关问题