У меня есть вид в рельсах:
<%= 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-класс и передал этот идентификатор в функцию hide, как указано в комментариях ниже, и это похоже на работу. Я не понимаю, почему страница была просто загружаемой и отображающей форму при передаче в form
, но она не имеет такого эффекта при передаче в id
. Но проблема решена.
Пытаться
$("form").submit(function(){
$(this).hide();
})
Мне кажется, что Ajax - это то, что вы хотите (например, @arieljuod сказал), но если вы просто хотели скрыть форму без передачи данных на сервер, вы могли бы предотвратить это событие.
$("form").submit(function(e){
e.preventDefault();
$(this).hide();
})