Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd funkcji Number.isInteger
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Quan1
Cytat
Witam Serdecznie,

Wszystko zaczęło się od napisania poniższego kodu:
Kod
<script type="text/javascript">

    
var r = prompt("Podaj swoj pesel")
var n = r.length;
var b = Number.isInteger(r);

if(n>11){
document.write("Podales za duzo liczb w peselu");
}
else
if(n<11)
{
document.write("Podales za malo liczb w peselu");
}
else
if(n == 11)
{
document.write("Pesel zostal prawidlowo wprowadzony");
}
else
if(b == false)
{
document.write("W peselu znajduja sie litery, popraw to!");
}

</script>

Oczywiście ma być to najprostszy skrypt do sprawdzania "powiedzmy" peselu, wcześniej poradzono mi aby sprawdzać czy użytkownik wpisał litery czy cyfry przez Number.isInteger, tak robię na "brudno" czyli:'

Kod
<script type="text/javascript">

var c = 123;
var b = Number.isInteger(c);
document.write(b);


Tutaj wszystko działa, jeżeli podam liczbę dostaje wartość true, jeżeli podam litery wyskakuje false, poradzono mi, że mam błędy w ifach, niestety po usunięciu całego kodu odpowiadającego za ify dalej po podaniu każdej liczby wyskakuje cały czas false, udało mi się dojść do tego, że dzieje się to poprzez wprowadzanie przez prompt, co mogło by być nie tak ?

trueblue
Mógłbyś uporządkować te ify.
Ale skoro tak póki co ma być, to co jest nie tak? Dla 0123456789 otrzymuję prawidłowe info.
Quan1
Cytat(trueblue @ 1.10.2016, 22:54:34 ) *
Mógłbyś uporządkować te ify.
Ale skoro tak póki co ma być, to co jest nie tak? Dla 0123456789 otrzymuję prawidłowe info.


Generalnie chodziło oto, że musiałem przekonwertować tekst na liczbę, już to zrobiłem kod poniżej:
Cytat
<script type="text/javascript">

var str = prompt('Podaj liczbę');
var num = +str;
var a = Number.isInteger(num);
var b = str.length;

document.write(a);

if(b>11){
document.write("Podales za duzp liczb");
}
else
if(b<11){
document.write("Podales za malo liczb");
}
else
if(a == false){

document.write("Wszystko jest ok");
}


</script>


Tylko teraz mam problem z tym w jaki sposób jeżeli wartość a będzie miała odpowiedź true żeby była wyświetlana informacja "Wszystko jest ok" ?
trueblue
Zmienić ostatni warunek?
Quan1
Przestawiłem go na sam początek i już działa, tylko tutaj powstał kolejny problem, w jaki sposób mogę tak zrobić gdy jak wpiszę trzy litery to nie były wyświetlane dwie informację czyli o tym, że pisałem litery zamiast cyfr oraz o tym, że wpisałem za mało znaków ? Można do ifa jakiś parametr and dodać?
viking
Zrób to po prostu:

if (długość == 11) { cośtam dalej}
else {komunikat błędu}
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.