:ge-6ren">
gpt4 book ai didi

ruby-on-rails - rails : How to pass value from textfield to a partial

转载 作者:太空宇宙 更新时间:2023-11-03 16:38:03 25 4
gpt4 key购买 nike

我怎样才能轻松地将我从 auto_complete 文本字段获得的值传递给一个部分。

<%= text_field_with_auto_complete :participant, :name, {}, {:url => {:controller => "contentcom/discussions", :action => :get_users_for_auto_complete}, :method => :get, :param_name => 'search'} %>
<%= button_to_function(:OK) do |page|
page.insert_html :top, :participants, :partial => 'participant', :locals => end %>

再见,

妮可

最佳答案

首先,您需要知道帮助程序 text_field_with_auto_completebutton_to_function 并不真正处理用户操作,而只是生成 HTML 和 javascript 代码。只有生成的 javascript 代码才能与用户交互。在这种情况下,text_field_with_auto_complete 生成以下内容(大约):

<input type="text" id="participant_name" name="participant[name]" size="15" />
<div id="participant_name_auto_complete" class="auto_complete"> </div>

<script type="text/javascript">
var participant_auto_completer = new Ajax.Autocompleter (
'Participant',
'Name',
'/contentcom/discussions/get_users_for_auto_complete',
{method: 'GET', param_name: 'search'}
);
</script>

上面的代码是用户在他的浏览器中获取的。如果您阅读 documentation对于 text_field_with_auto_complete,您会看到我们可以使用选项 :after_update_element。此选项允许我们指定当用户选择其中一个建议值时将调用的 JavaScript 函数的名称。

我们需要做的:

  1. 编写一个 JavaScript 函数将显示在用户选择的任何地方来自自动完成字段的值。
  2. 调用text_field_with_auto_complete使用 :after_update_element

这就是模板的样子:

<ul id="selected_participant_container"></ul>

<%= text_field_with_auto_complete :participant, :name, {}, {
:url => {:controller => "contentcom/discussions", :action => :get_users_for_auto_complete},
:method => :get,
:param_name => 'search',
:after_update_element => 'afterParticipantSelected'
}%>

<script type="text/javascript">
function afterParticipantSelected (el, value) {
var container = document.getElementById ('selected_participant_container');

container.innerHTML = value;
}
</ Script>

现在,当用户在自动完成字段中选择一个值时,它将显示在 id = selected_pa​​rticipant_container 的元素中

当然,你可以使用tokland提出的方法。

但我建议您先学习 HTML 和 Javascript 的基础知识。

关于ruby-on-rails - rails : How to pass value from textfield to a partial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4492480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com