2013-10-10 77 views
3

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

<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 %> 

这会产生一种形式,类似于我想要实现,但是当点击提交按钮时,它会尝试访问/#而不是所需的结果。目前我唯一能想到的就是设置按钮的disabled属性,但有没有更好的方法?

回答

2

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

:action => "#" 

但是这将需要在路由中包括动作 - >有一个控制器为它做动作 - >再次渲染一些页面。

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

<%= button_tag "Login", :type => 'button'%> 
+0

这工作,谢谢。虽然这两个答案都是正确的,但是这个更详细地说明了为什么我所做的没有工作,这就是我选择它的原因。 – lafferjm

1

您是否试过用button_tag而不是submit_tag?见here。只要确保你没有使用默认设置,或者你会马上回到你开始的地方。

2

尝试

<% form_tag "#", :onSubmit => "return false" do %>