Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Ajax][jQuery] Konflikt formularza i return false w popupie
kcinon
post 22.08.2012, 09:19:26
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 22.08.2012

Ostrzeżenie: (0%)
-----


Witam,

Tworzę w symfony prosty panel logowania, który wczytywany jest przez Ajaxa.

Fragment kodu, który odpowiada za wyswietlanie wczytanego formularza
  1. <a href="<?php echo url_for('sfGuardAuth/signin'); ?>" title="Zaloguj się" class="loginBtn" id="logowanie">zaloguj się</a>
  2. <div id="loginPopup">
  3. <div id="loading">
  4. <?php echo image_tag('loading.gif', array('alt' => 'Wczytywanie...')); ?>
  5. </div>
  6. </div>


Formularz wczytywany z pliku zewnętrznego

  1. <form action="<?php echo url_for('@sf_guard_signin') ?>" method="post">
  2. <table>
  3. <?php echo $form ?> // wyswietla tabelkę z inputami - <input id="signin_username" type="text" name="signin[username]"> i <input id="signin_password" type="password" name="signin[password]"> i labelami dla nich
  4. </table>
  5. <input type="submit" value="<?php echo __('sign in'); ?>" />
  6. </form>


Założenie jest takie, że formularz ma się pojawiać w popupie, a po wpisaniu wartości i naciśnięciu submita, ma przekierować do strony z logowaniem,
jednak gdy klikamy poza obszar popupa, ten ma się ukrywać.

Poniżej kod:

[JAVASCRIPT] pobierz, plaintext
  1. <script language="javascript">
  2. $(function(){
  3. var content = $("#loginPopup");
  4. var loading = $("#loading");
  5.  
  6. //show loading bar
  7. function showLoading(){
  8. loading
  9. .css({visibility:"visible"})
  10. .css({opacity:"1"})
  11. .css({display:"block"})
  12. ;
  13. }
  14. //hide loading bar
  15. function hideLoading(){
  16. loading.fadeTo(1000, 0);
  17. content.slideDown();
  18. };
  19.  
  20. $('#loginPopup').hide();
  21.  
  22. $('#logowanie').click(function(event){
  23. showLoading();
  24. content.load('<?php echo url_for('szukaj/loguj'); ?>', hideLoading);
  25. $('#loginPopup').toggle();
  26. return false;
  27. });
  28.  
  29. $('#loginPopup').on('click', function(){
  30. return false;
  31. });
  32.  
  33. $(document).click(function(){
  34. $('#loginPopup').hide();
  35. });
  36. });
  37. </script>
[JAVASCRIPT] pobierz, plaintext


Problem jednak jest taki, że jeśli zablokuję ukrywanie popupa po kliknięciu #loginPopup, automatycznie wczytany formularz też się blokuje i nie może zostać wysłany.
Gdy tego nie robię, formularz ukrywa się po kliknięciu na dowolny element zawarty w popupie (inputy, submity, tlo) ale następuje przekierowanie.
Próbowałem blokować elementy zagnieżdzone ale niestety tak też nie działa.

Czy znacie jakiś sposób aby ten problem rozwiązać?

Ten post edytował kcinon 22.08.2012, 09:22:04
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 13:40