Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Form.submit() - nie działa pod IE
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
rafaelb
Mam następujący uproszczony kod HTML i JS
  1. <script LANGUAGE="JavaScript" TYPE="text/javascript">
  2.  
  3. function deleteMsg(Formularz)
  4. {
  5. if(confirm("Czy chcesz usunąć"))
  6. {
  7. document.getElementById('act_msg').value = "delete";
  8. document.getElementById(Formularz).submit();
  9. }
  10. };
  11.  
  12. function unreadMsg(Formularz)
  13. {
  14. document.getElementById('act_msg').value = "unread";
  15. document.getElementById(Formularz).submit();
  16. };
  17.  
  18. function readMsg(Formularz)
  19. {
  20. document.getElementById('act_msg').value = "read";
  21. document.getElementById(Formularz).submit();
  22. };
  23.  
  24.  
  25. <form name="MsgForm" id="MsgForm" method="POST" action="site.php?s=NTFjNjYxODMwMDE4NTk=">
  26. <input type="hidden" name="act_msg" id="act_msg" value="" />
  27. <input type="hidden" name="rand_msg" id="radn_msg" value="bbed12840950595b24641fabd6702231" />
  28. <table class="table_blue">
  29. <tr >
  30. <td style="text-align:center; width: 20px;">
  31. 1
  32. </td>
  33. <td style="text-align:center;">
  34. <input type="checkbox" value="22" name="msg_id[]" id="msg_22" />
  35. </td>
  36. <td style="font-weight:normal">
  37. <label for="msg_22">Feugiat molestie recteque mea no, ne tol ...<span class="small">Jan Nowak 2007-06-21 09:35:34</span></label>
  38. </td>
  39. <td >
  40. <a onclick="javascript:ShowMsg(22);" href="javascript:;" target="_self">otwórz</a>
  41. </td>
  42. </tr>
  43. <tr>
  44. <td colspan ="3" style="vertical-align: top;">
  45. <ul style="list-style: none; padding: 0px; margin:0px" class="clear2">
  46. <li style="padding-top: 7px;"><a href="javascript:void(0);" onclick="javascript:deleteMsg('MsgForm');" >usuń zaznaczone</a></li>
  47. <li style="padding-top: 7px;"><a href="javascript:void(0);" onclick="javascript:readMsg('MsgForm');" >oznacz jako przeczytane</a></li>
  48. <li style="padding-top: 7px;"><a href="javascript:void(0);" onclick="javascript:unreadMsg('MsgForm');" >oznacz jako nieprzeczytane</a></li>
  49. </ul>
  50. </td><td></td>
  51. </tr>
  52. </form>


Sprawa zapewne jest prosta dale nie wiem już gdzie szukać przyczyny.
Jest sobie lista wiadomości które można zaznaczyć i usunąć, zaznaczyć jako przeczytane bądź nie, oraz otworzyć i przeczytać.
Pod FireFoxem nie ma problemu. Zaznaczam checboxy i klikam np. usuń zaznaczone. Wykonuje sie funkcja JS deleteMsg() i wysyła się formularz.

Wcześniej miałem inaczej rozwiązane ale też nie działa pod IE
  1. <script LANGUAGE="JavaScript" TYPE="text/javascript">
  2. function deleteMsg(Formularz)
  3. {
  4. $('act_msg').value = "delete";
  5. Formularz.submit();
  6. };
  7.  
  8.  
  9. <li style="padding-top: 7px;"><a href="javascript:void(0);" onclick="javascript:deleteMsg(MsgForm);">usuń zaznaczone</a></li>



Pod IE 6 jest już inaczej. Funkcja się wykonuję (do tego już doszedłem) i formularz sie wysyła ale nie odświeża sie strona i użytkownik sądzi że formularz sie nie wysłał. Wiem że się wysyła formularz, gdyż jak ręcznie odświeżę później stronę to już widać efekt działania formularza, np. brak jest już wiadomości
batman
To powinno działać.
Kod
document.MsgForm.submit();
rafaelb
Cytat(batman @ 30.10.2007, 10:01:45 ) *
To powinno działać.
Kod
document.MsgForm.submit();


Niestety ciągle to samo
Zajec
Kod wewnątrz atrybutu onclick jest *zawsze* kodem JS. Nie można tam umieścić kodu HTML, zwykłej wartości, itp. Tak więc nie stosuj tam pseudoprotokołu JS, tylko po prostu napisz, co ma się wykonać i powinno zadziałać pod każdą przeglądarką oraz IE.


Tak przy okazji zapytam, skąd wzięła Ci się przeglądarka o nazwie FireFox? :-)


Cytat(batman @ 30.10.2007, 09:01:45 ) *
To powinno działać.
Kod
document.MsgForm.submit();

Proszę, jak nie znasz podstaw JS to nie pomagaj ludziom. Czytałeś cokolwiek o wadach document.all?
batman
Cytat
Proszę, jak nie znasz podstaw JS to nie pomagaj ludziom.

Hmmm. To napisz mi proszę mistrzu JS jak to powinno wyglądać? Pewnie napiszesz document.forms['MsgForm'].submit();
rafaelb
Cytat(Zajec @ 30.10.2007, 11:56:35 ) *
Kod wewnątrz atrybutu onclick jest *zawsze* kodem JS. Nie można tam umieścić kodu HTML, zwykłej wartości, itp. Tak więc nie stosuj tam pseudoprotokołu JS, tylko po prostu napisz, co ma się wykonać i powinno zadziałać pod każdą przeglądarką oraz IE.

Tak przy okazji zapytam, skąd wzięła Ci się przeglądarka o nazwie FireFox? :-)

Oj nie czepiajmy sie szczegółów chyba każdy wie o co chodzi.

a co do zmiany na onclick="readMsg('MsgForm');" to problem pozostał.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.