Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js]Problem ze skryptem pod ie
Fixus
post
Post #1





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


Witam...mam taki kod
  1. function makeCheck(thisForm, checkType)
  2. {
  3.  
  4. for(i in thisForm.elements)
  5. {
  6. if(thisForm.elements[i].name.substr(0,6)=='option')
  7. {
  8. thisForm.elements[i].checked=checkType;
  9. }
  10. }
  11. }
  12.  
  13. function makeUncheck(thisForm)
  14. {
  15. for(i in thisForm.elements)
  16. {
  17. if(thisForm.elements[i].name.substr(0,6)=='option')
  18. {
  19. thisForm.elements[i].checked=false;
  20. }
  21. }
  22. }


odwołuje się do funkcji w ten sposób
  1. <input type="button" value="Check All" class="button" onclick="makeCheck(this.form, true)">


Teraz problem polega na tym, że pod FF skrypt działa bardzo dobrze. Klikam, zaznaczają się wszystkie checkboxy i wszyscy są zadowoleni. Jednak pod IE nie działa to wogóle. Nie wiem w czym jest problem, sprawdziłem ustawienia przeglądarki i JavaScript jest napewno włączony. Czy ktoś wie jak temu zaradzić?
Go to the top of the page
+Quote Post
webasek
post
Post #2





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


Nie bardzo rozumiem po co to?

this.form

lepiej może użyć nazwy formularza? Może to pomoże? A czy w IE wywala jakiś błąd javascripts? Bo jeśli masz więcej skryptów to nie koniecznie ten jest zły. Poza tym sgeruje zastosowanie alert do sprawdzenia, która linijka sprawia mu problem
Go to the top of the page
+Quote Post
Fixus
post
Post #3





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


czyli zamiast: this.form zrobić form.name.nazwaFormularza (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Nie to jest jedyny js na stronie...jedyne co wyświetla na stronie, a raczej an dolny pasku to napis Błąd strony

a jak skutecznie skorzystać z alerta? wystarczy że dam gdziesz alert()? bo gdybym programował jakąś aplikację to bym sprawdził czy wartość logiczna funkcji wynosi true jeśli nie to zwrócił komunikat, ale nie wiem jak to zrobić w js (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
kevinsz
post
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 2
Dołączył: 26.04.2007

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


Z tego co wiem, to IE ma problemy z tą linijką
  1. for(i in thisForm.elements)


Wystarczy zmienić na
  1. for(i = 0; i < thisForm.elements.length; i++)
Go to the top of the page
+Quote Post
webasek
post
Post #5





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


Kliknij tam gdzie pisze błąd w ie i zobaczysz która linijka nawala co do alerta to po prostu wstawiaj alert('tutaj'); po kazdej linii ale po kolei najpierw na początku itd... jeśli nie pójdzie od razu to kasuj najpierw wszystkie linie z kodu i dodawaj po jednej w ten sposób dojdziesz gdzie błąd.

Nie użyj tego tak document.nazwaformularza.elements ...

lub document.nazwaformularza.nazwapola ...
Go to the top of the page
+Quote Post
Fixus
post
Post #6





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


kevinsz poskutkowało. Wielkie dzięki. Webasek też dzięki za rady
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 03:59