【问题标题】:How to access the contents of a text_field before user submits the form如何在用户提交表单之前访问 text_field 的内容
【发布时间】:2016-09-02 00:12:16
【问题描述】:

我有一个带有单个 text_field_tag 的表单。这种形式出现在整个应用程序布局中。我使用params[:controller] 来设置url_for_options。根据用户在哪个页面上使用此text_field_tag,功能会有所不同。

然后将逻辑保存在使用此搜索表单的众多控制器的创建操作中。

如果用户搜索的页面不是我预设的指定控制器之一,它当前默认为一个。我希望能够根据text_field_tag 的内容更改使用的默认控制器。

所以如果用户输入一个 IP 地址,我会将他们路由到第 x 页。如果用户输入电子邮件地址,我会将他们路由到页面 y。

我的问题是,如何在用户点击提交之前或点击提交之后但在我设置 url_for_options 之前查看用户输入的内容?

我有一个 if/elsif/else 语句来处理我的部分表单中的 url_for_options。在 else 语句中,我设置了设置 url_for_options 的默认搜索路由。我基本上想要一种方法,在 else 块中,检查 text_field_tag 是 IP 还是电子邮件地址(我可以使用正则表达式进行实际检查,并且不需要帮助)。但是我的问题是,在我已经提交表单之前,我无法找到查看text_field_tag 内部的方法,而且我不确定我可以将逻辑放在哪里来检查text_field_tag 的内部和然后将它们重定向到所需的页面。

【问题讨论】:

  • 请您发布一些实际代码。抱歉,否则这有点含糊。
  • 请阅读“How to Ask”和“minimal reproducible example”。我们希望看到您尝试解决这个问题并从那里开始工作。没有任何代码的描述让我们很难“看到”你在做什么,并导致很多猜测和问题。 Ruby 或 Rails 都不能做你想做的事,所以这个问题完全是关于 JavaScript 和 jQuery 的。

标签: javascript jquery ruby-on-rails ruby forms


【解决方案1】:

你可以在form标签中指定onsubmit来为此运行一个自定义的JS函数。

I.E.

<form onsubmit="setURL()" ...>

当用户提交表单时,它会首先调用 setURL() 函数。从那里您可以使用 JS 或 jQuery 根据输入值将操作设置为特定的 URL 或页面。

【讨论】:

  • 这正是我所需要的。我为这个模糊的问题道歉! @ruby_newbie
猜你喜欢
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
  • 2015-06-25
  • 2011-12-08
  • 1970-01-01
  • 2012-08-31
  • 2021-05-25
  • 1970-01-01
相关资源
最近更新 更多