Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [javascript, css] problem na IE7
Forum PHP.pl > Forum > Po stronie przeglądarki
soska66
Jak zwykle problem dotyczy IE7 (nie wiem jak na starszych wersjach, zakladam, ze skrypt zachowuje sie tak samo.

Oto kod
  1. function twist( recipient,recipientcheck)
  2. {
  3. divobj = document.getElementById( recipient );
  4. checkbox = document.getElementById( recipientcheck );
  5.  
  6. if(checkbox.checked){
  7. divobj.style.position = "relative";
  8. divobj.style.visibility = "visible";
  9. }else{
  10. divobj.style.position = "absolute";
  11. divobj.style.visibility = "hidden";
  12. }
  13. }


W formie mam diva, ktory pojawia/chowa sie w zaleznosci czy zaznaczy/odznaczy sie checkboxa.

  1. <input type="checkbox" name="recipientcheck" id="recipientcheck" onclick="java script:void twist('recipient', 'recipientcheck');">
  2. <div style="visibility:hidden;position:absolute;" id="recipient">
  3. <table border="0" cellspacing="8" cellpadding="0" width="100%" align="left" style="margin-top: 5px">
  4. <tr>
  5. <td colspan="2"><b>Please enter details of a person that you want to send Voucher to:</b></td>
  6. </tr>
  7. <tr>
  8. <td align="right" width="200">First Name</td>
  9. <td align="left"> <input class="formbits" name="recipientfname" size="35" maxlength="35" value=""> </td>
  10. </tr>
  11.  
  12. </div>


Po zaznaczeniu checkboxa, w IE widac wyraznie, ze strona sie rozszerzam, ale nie pojawia sie 'input' w miejscu rozszerzenia. Wyglada na to, ze dziala atrybut position, al enie dziala visibility (tak jakby caly czas byl hidden)

jesli jednak na sztywno wpisze w divie style="visibility:visible", forma jest widoczna... ale tylko do momentu zaznaczenia checkboxa - wtedy odpalany jest skrypt js i problem z pusta przestrzenia powraca.
Wszystko pieknie smiga na firefoxie i operze
^bmb
nie mam badzIEwia 7 ale pod 6 działa ok.

wyrzuciłem tylko z onclick java script: void bo niepotrzebne

czyli onclick="twist('recipient', 'recipientcheck');"
soska66
no u mnie nadal nie dziala... ale wlasnie odkrylem, ze to jednak wina atrybutu position. Jak na sztywno wstawie 'relative' wyrzuce ze skryptu linikji odpowiadajace za zmiane position, dziala dobrze... no z tym, ze wtedy wizualnie jest do kitu, bo pusta przestrzen jest widoczna gdy checkbox jest odznaczony

Ale jak to naprawic to juz nie wiem :/
^bmb
Cytat(soska66 @ 7.06.2007, 12:17:10 ) *
no u mnie nadal nie dziala... ale wlasnie odkrylem, ze to jednak wina atrybutu position. Jak na sztywno wstawie 'relative' wyrzuce ze skryptu linikji odpowiadajace za zmiane position, dziala dobrze... no z tym, ze wtedy wizualnie jest do kitu, bo pusta przestrzen jest widoczna gdy checkbox jest odznaczony

Ale jak to naprawic to juz nie wiem :/


a mozesz wkleic caly kod html w ktorym ci to nie działa?? bo przy samym kawałku który poprzednio wkleiłeś raczej nie ma prawa stwarzać problemów...chyba ze to jedno z "usprawnien" IE 7 winksmiley.jpg
soska66
Caly HTML to kilkanascie dodatkowych 'zawsze widzialnych' input boxow przed tym checkboxem i divem (wiec nie ma sensu zasmiecac posta calym kodem) ... Plus submit na samym dole (ponizej omawianego diva). To caly html
revyag
Zamiast visibility użyj display:block, display:none.
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.