6

我最近一直在使用 Ruby on Rails 并遇到了一个我无法弄清楚的问题。我需要创建一堆不起作用的表单模型。那就是他们应该有提交按钮,但它不应该在被点击后做任何事情。通常使用 html 我会做一些类似的事情

<form action="#">
</form>

试图将其转换为使用 Rails 表单助手,我做了以下

<%= form_tag "#" do %>
    <%= label_tag :username, "Username: " %>
    <%= text_field_tag :username %>
    <br />
    <%= label_tag :password, "Password: " %>
    <%= password_field_tag :password %>
    <br />
    <%= submit_tag "Login" %>
<% end %>

这会生成一个类似于我想要实现的表单,但是当单击提交按钮时,它会尝试通过 post 访问 /#,这不是所需的结果。目前我唯一能想到的就是设置按钮的禁用属性,但是有更好的方法吗?

4

3 回答 3

3

不幸的是,这不能通过表单助手来实现。定义 aform_for或 aform_tag需要对表单执行操作。你可以设置

:action => "#" 

但这需要在路由中包含操作 -> 有一个带有操作的控制器 -> 再次渲染一些页面。

但是,您可以在使用 javascript 加载后操作表单(请记住设置:remote为 true - )。或者,如果您坚持使用表单助手 - 将 submit_tag 替换为button_tag

 <%= button_tag "Login", :type => 'button'%>
于 2013-10-10T02:10:33.997 回答
3

尝试

<% form_tag "#", :onSubmit => "return false" do %>
于 2013-10-10T02:15:15.180 回答
2

你试过用button_tag代替submit_tag吗?见这里。只要确保你不使用默认值,否则你会回到你开始的地方。

于 2013-10-10T02:06:59.083 回答