如何在用户提交表单之前访问text_field的内容

时间:2016-05-06 20:03:27

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

我有一张单text_field_tag的表单。这个表单遍布整个应用程序布局。我使用params[:controller]来设置url_for_options。根据用户使用此text_field_tag的页面,该功能将有所不同。

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

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

因此,如果用户输入IP地址,我会将它们路由到第x页。如果用户输入电子邮件地址,我会将它们路由到第y页。

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

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

1 个答案:

答案 0 :(得分:1)

您可以在表单标记中指定onsubmit来为此运行自定义JS函数。

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

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