我在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();
})
表单变得不可见,但随后会立即重新加载页面并再次显示表单。在重新加载页面之前,它会在瞬间保持不可见状态。有没有办法在页面之间传递影响,或者在不重新加载页面的情况下显示表单结果?
问题解决了。我将表单包装在div类中,并将该ID传递给hide函数,如下面的注释所述,这似乎有效。我不明白为什么页面在传递form
时只是简单地显示和显示表单,但在传递id
时它没有那种效果。但是,问题解决了。
答案 0 :(得分:1)
尝试
$("form").submit(function(){
$(this).hide();
})
答案 1 :(得分:0)
在我看来,Ajax就是你想要的(就像@arieljuod所说的那样),但是如果你只想隐藏表单而不将数据传递给服务器,那么你可能已经阻止了这个事件。
$("form").submit(function(e){
e.preventDefault();
$(this).hide();
})