Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Przerwanie działania skryptu
Forum PHP.pl > Forum > Przedszkole
xxxgabaxxx
Nie mogę poradzić sobie z przerwaniem skryptu. Skrypt przypisuje nam odpowiednią klase i podsieć do adresu IP.

Problem: Jeśli, któryś z oktetów wynosi 256 powinien zostać zatrzymany skrypt i komunikat 'błędny adres IP'. Poniższy skrypt działa tylko na pierwszy oktet, na pozostałe już nie

<script>

var pierwszy=prompt('Podaj pierwszy oktet adresu. (Zakres 1-255)', 192);
var drugi=prompt('Podaj drugi oktet adresu. (Zakres 1-255)', 168);
var trzeci=prompt('Podaj trzeci oktet adresu. (Zakres 1-255)', 0);
var czwarty=prompt('Podaj czwarty oktet adresu. (Zakres 1-255)', 1);

document.write('Twój adres IP wynosi:' +pierwszy + '.' + drugi + '.' + trzeci + '.' + czwarty)

if (pierwszy >= 1 & pierwszy <= 126)
document.write('<br><b>Klasa A</b> <br> Twoja maska podsieci wynosi <b>255.0.0.0</b>');
if (pierwszy == 127)
document.write('<br><b>Pętla zwrotna</b>');
if (pierwszy > 128 & pierwszy < 192)
document.write('<br><b>Klasa B</b> <br> Twoja maska podsieci wynosi <b>255.255.0.0</b>');
if (pierwszy > 191 & pierwszy < 224)
document.write('<br><b>Klasa C</b> <br> Twoja maska podsieci wynosi <b>255.255.255.0</b>');
if (pierwszy > 223 & pierwszy < 240)
document.write('<br><b>Klasa D</b> <br> Twoja maska podsieci wynosi <b>255.255.255.255</b>');
if (pierwszy > 239 & pierwszy < 256)
document.write('<br><b>Klasa E</b>');
if (pierwszy > 255)
document.write('<br><b>Zły adres!</b>');

</script>
trueblue
A gdzie sprawdzasz zakresy oktetów 2,3 i 4?
xxxgabaxxx
Miałem

if(drugi>255 || trzeci>255 || czwarty>255)
document.write('Błedny adres ip');

Jednak nie mogę zamknąć działanie skryptu, jeśli któryś warunek jest niespełniony. Wypisuje Błędny adres ale dalej wypisuje klase :/
wolguy
spróbuj returnem
xxxgabaxxx
z kumplem próbowaliśmy - nieskutecznie :/
Raito
Nie łatwiej byłoby pierwszy warunek sprawdzać, czy któraś wartość przekracza 255, a potem z elseif lecieć?
robertpiaty
Po pierwsze zawsze używaj nawiasów {} dzięki temu nie raz unikniesz błędów logicznych. Po drugie wrzuć sobie swój kod w jakąś funckję i wewnątrz tej funkcji używaj return
  1. function checkIp(){
  2. var pierwszy=prompt('Podaj pierwszy oktet adresu. (Zakres 1-255)', 192);
  3. var drugi=prompt('Podaj drugi oktet adresu. (Zakres 1-255)', 168);
  4. var trzeci=prompt('Podaj trzeci oktet adresu. (Zakres 1-255)', 0);
  5. var czwarty=prompt('Podaj czwarty oktet adresu. (Zakres 1-255)', 1);
  6.  
  7. document.write('Twój adres IP wynosi:' +pierwszy + '.' + drugi + '.' + trzeci + '.' + czwarty)
  8.  
  9. if (pierwszy >= 1 & pierwszy <= 126){
  10. document.write('<br><b>Klasa A</b> <br> Twoja maska podsieci wynosi <b>255.0.0.0</b>');
  11. return;
  12. }
  13. }
  14.  
  15. checkIp();


-- edit
I jeszcze jedno - w if-ach zamiast & wstaw &&
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.