[JS] Integer prompt

0

W jaki sposób mogę zrobić dialog prompt w js, ale tak by przyjmował tylko liczby?

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);

1 użytkowników online, w tym zalogowanych: 0, gości: 1