jquery隐藏在rails表单提交按钮单击

时间:2013-12-22 16:40:32

标签: jquery ruby-on-rails

我在rails视图中有以下表单:

<%= form_for :search do |f| %>
      <%= f.label :search_by_name %>
      <%= f.text_field :by_name  %>
      <%= f.submit 'Search' %>
<% end %>

在jQuery中,我可以这样做:

        $("h1").click(function(){
            $("h1").hide();
        });

这会导致所有h1代码在点击h1代码后变为不可见。如何通过单击上面表单的“提交”按钮来使我的整个表单变得不可见?

修改

也许这个问题比我想的要大一些。当我按照以下答案执行此操作时:

 $("form").submit(function(){
        $(this).hide();
    })

表单变得不可见,但随后会立即重新加载页面并再次显示表单。在重新加载页面之前,它会在瞬间保持不可见状态。有没有办法在页面之间传递影响,或者在不重新加载页面的情况下显示表单结果?

编辑2

问题解决了。我将表单包装在div类中,并将该ID传递给hide函数,如下面的注释所述,这似乎有效。我不明白为什么页面在传递form时只是简单地显示和显示表单,但在传递id时它没有那种效果。但是,问题解决了。

2 个答案:

答案 0 :(得分:1)

尝试

 $("form").submit(function(){
        $(this).hide();
    })

答案 1 :(得分:0)

在我看来,Ajax就是你想要的(就像@arieljuod所说的那样),但是如果你只想隐藏表单而不将数据传递给服务器,那么你可能已经阻止了这个事件。

$("form").submit(function(e){
    e.preventDefault();
    $(this).hide();
})