W jaki sposób mogę zrobić dialog prompt w js, ale tak by przyjmował tylko liczby?
0
0
Domyślnie nie da się ustawić, żeby funkcja prompt zwracała liczbę całkowitą, bo zwraca ciąg znaków. Albo będzie on pusty - "", albo wypełniony, tym co użytkownik wpisał.
Trzeba zatem skonwertować ów ciąg znaków do liczby ( za pomocą funkcji parseInt )
Bardzo krótki kod:
var ret;
ret = parseInt(prompt("wprowadź liczbę"));
ret = isNaN( ret ) ? null : ret;
if (ret === null) {
alert("Nie podałeś poprawnej liczby");
}else{
alert("Podana liczba to: "+ret);
}
W zmiennej ret będzie albo wartość null, jeśli użytkownik nic nie wpisał ( pusty tekst albo tekst, który nie zawiera liczb ) albo po prostu liczba, którą użytkownik wpisał.
0
można to zautomatyzować:
function integerPrompt(s, i) {
while (true) {
if ((i = prompt(s)) === null) return i;
if (isNaN(i = parseInt(i)))
alert('Należy podać liczbę!'); else return i;
}
}
var liczba = integerPrompt('Wpisz liczbę:');
if (liczba === null)
alert('Operacja anulowana.');
else
alert('Podana liczba to ' + liczba);