Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: firefox i alert() wewnątrz funkcji
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
ArturS
Mam taki oto problem: w poniższej funkcji umieściłem na końcu alert, który powinien wyświetlić pewien tekst i robi to, ale nie pod Firefoxem. Jeśli umieszczę alert'a poza ciałem funkcji, wówczas jest ok. Co jest z Firefoxem nietak, że zatrzymuje w tym wypadku to zdarzenie i jak w inny sposób można sobie z tym poradzić? Czy może coś tu skaszaniłem blink.gif

Kod
function sprawdz_imei(numer) {
    var cd = 0;
    var imei = numer.value;
    for (var i=0;i<13;i++) {
  cd += (imei.charAt(i) * 1);    
  i++;
  cd += (imei.charAt(i)<5)?(2 * imei.charAt(i)) : ((((2 * imei.charAt(i))-10)*1) + (1));
    }
    var suma = ((cd % 10) < 1)?0:10-(cd%10);
    var inf = (imei.charAt(14) == suma)?"prawidłowy":"nieprawidłowy!!!";
    alert("Suma kontrolna = "+suma+"\nIMEI jest "+inf)
}

Proszę używać bbcode
poprawiam
-----
nospor
ghostrider
skrypt prawdopodobnie nie dociera do lini z alertem
w FF masz konsole JS, Toos-> JavaScript Console
tam znajdziesz odpowiedz

mnie sie wydaje ze imei nie zawsze jest Stringiem, i charAt nie zadziala
Kod
imei = new String(numer.value);
ArturS
Problem tkwi tak na prawdę nie w tym co funkcja oblicza. Jeśli umieszczę w dowolnym miejscu np alert("Hello") to też nic z tego. hmmm.. w sumie to teraz mnie tak naszło pytanie czy problemem jest nie funkcja, ale to jak się ją wywołuje, a mianowicie



<INPUT type="text" size="15" maxlength="15" name="nr_imei"><BR>
<BR><INPUT type="button" value="Sprawdź" onclick="sprawdz_imei(nr_imei)">

Może Firefox inaczej obsługuje zdażenie onClick i w ogóle funkcji nie wywołuje??

Co do tego czym jest IMEI to raz traktowany jest jako string, raz jako liczba (w sensie wskazanego znaku) i do wydaje się działać odpowiednio, bo uruchomione poza funkcją działa ok.
SHiP
No cóż moim zdaniem po prostu powinieneś inaczej odwoływać sie do pola w formularzu ;]
Kod
<INPUT type="button" value="Sprawdź" onclick="sprawdz_imei(document.nazwa_formularza.nr_imei)">


Jaką masz wersje FireFoxa?
U mnie kod dziala bez problemu pod Opera i FF:
Kod
<head>
<script language="javascript">
function sprawdz_imei(numer)
{
  var cd = 0;
  var imei = numer.value;
  for (var i=0;i<13;i++)
  {
    cd += (imei.charAt(i) * 1);
    i++;
    cd += (imei.charAt(i)<5)?(2 * imei.charAt(i)) : ((((2 * imei.charAt(i))-10)*1) + (1));
  }
  var suma = ((cd % 10) < 1)?0:10-(cd%10);
  var inf = (imei.charAt(14) == suma)?"prawidłowy":"nieprawidłowy!!!";
  alert("Suma kontrolna = "+suma+"\nIMEI jest "+inf)
}

</script>
</head>
<body>

<form name="forma">
<INPUT type="text" size="15" maxlength="15" name="nr_imei"><br/><br/>

<INPUT type="button" value="Sprawdź" onclick="sprawdz_imei(document.forma.nr_imei)">
</form>

</body>
ArturS
O jessuuu withstupidsmiley.gif Wstyd się przyznać, ale należało by to zrobić i zakończyć wątek. Cały problem spowodowany był zwykłym zagapieniem i nie ujęciem znaczników < input > wewrątrz < form >

<form method="POST">
<INPUT type="text" size="15" maxlength="15" name="nr_imei"><BR>
<INPUT type="submit" value="Sprawdź" onclick="sprawdz_imei(nr_imei)">
</form>

Tyle wystarczy. Dzięki wielkie :-)

Pozdrawiam
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.