2011-12-23 4 views
1

У меня есть настройка формы, где пользователь может зарегистрироваться, а при отправке запускается скрипт PHP, который проверяет пользователя, и как только это будет сделано, оно перекликается с почтовым ящиком, который jQuery быстро скрывает, а затем исчезает в течение 1 секунды , То, что я теперь хочу сделать это, чтобы иметь возможность скрыть эту форму на представленню, и я думал, что это может сделать это:jQuery скрыть форму на submit?

$(document).ready(function() { 
    $('div.mainsuccess,div.mainerror').hide(0).fadeIn(1000); 
    $('form.register').submit(function() { 
     $(this).hide(1000); 
    }); 
}); 

Где div.mainsuccess это сообщение об успехе, и form.register является формой (с классом регистра). Теперь работает первая строка, которая говорит мне, что скрипт вызывается, но форма вообще не скрывается. Я здесь делаю что-то глупое, но я не могу понять, что?

Я попытался просмотреть документацию API jQuery для submit(), но я не могу понять, что говорится. Благодарю.

+0

Я не уверен, если '.hide (0)' работает правильно. Почему бы вам просто не использовать '.hide()', чтобы скрыть сразу? – pimvdb

+0

он работает правильно, мой вопрос: почему не работают вторая и третья строки? (часть, связанная с формой) – ReactingToAngularVues

+3

Обновляется ли ваша веб-страница после отправки формы?Если это так, форма не скрывается, потому что страница обновляет DOM. – Indranil

ответ

2

Я думаю, что причина не может работать, потому что форма представления это данные и ждет страницы для обновления ... значит, это остановит все его вещи Javascript Потому что это бессмысленно ... Я мог ошибаться, но эй, твоя спрятала бы 1 секунда, чтобы спрятаться, но твоя страница могла быстрее перезагрузиться.

$(document).ready(function() { 
    $('div.mainsuccess,div.mainerror').hide(0).fadeIn(1000); 
    $('form.register').submit(function(e) { 
     e.preventDefault();// will stop the form being submited... 
     $(this).hide(1000); 
     // do ajax here... 
     return false; 
    }); 
}); 

Обновлено

вот список учебников

http://viralpatel.net/blogs/2009/04/jquery-ajax-tutorial-example-ajax-jquery-development.html

http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/

http://www.sitepoint.com/ajax-jquery/

Видео .... http://www.youtube.com/watch?v=0CMTQtnZ0G0

+0

Правильно, возврат false - это ключ. –

+0

Звучит здорово, и я понимаю это предположение, но я бы не знал AJAX, если он ударил меня по лицу! – ReactingToAngularVues

+0

думать о ajax как о невидимом iframe или окне, вы можете отправить $ _POST [в php или другом сервере] информацию, тогда он вернет исходный код обратно все, что вы пожелаете на этой странице, используя firebug, или инструменты разработчика, такие как хром, позволят вам чтобы узнать, что вернулось, если вы хотите узнать больше, я могу создать чат-комнату в stackoverflow и вести вас таким образом. – Val

2

Попробуйте это:

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

Я также думаю, что это путь. – Zyberzero

+0

Нет, просто попробовал, и это не работает. – ReactingToAngularVues

+0

проклял тебя, ты украл мой гром хахаха :) – Val

1

Ну, кажется, что форма обновляется после подачи, поэтому она все еще там.

Я предлагаю использовать что-то вроде JQuery формы: http://jquery.malsup.com/form/

Читайте на него, и вы увидите, как использовать его, и когда он будет представлен, он не будет обновляться, и с помощью hide() вы сможете скрыть.

N.B Вам понадобится jQuery, на который делается ссылка в вашем коде, чтобы использовать форму jQuery.

Наслаждайтесь.

2

Вы хотели бы включить в Ajax вызова (Я посещаю запись) для вызова PHP вместо перезагрузки страницы

$('form.register').submit(function(e) { 
    e.preventDefault(); 
    url = $(this).attr('action'); 
    $.post(url,$(this).serialize(), function(data) { 
     alert('success'); 
     // data will return source code of the URL so you can grab that data and put it somewhere on the script like so. 
     $('#result').html($(data).find('form'));//form can be replaced with anything 
     // #result is the id of an element you wish to return the info to 
    }); 
    $(this).hide(1000); 
}); 

И вы бы сделали.

More info here

+1

Мне нравится ваш ответ, возможно, вам следует расширить его, помогая использовать возвращаемую переменную данных. Я обновлю это для вас. – Val

+0

True. Но я предполагаю, что это в основном зависит от того, что OP хочет делать с данными. – Indranil

Смежные вопросы