Przedziały w JavaScript

octonapewno

Użytkownik
Dołączył
Maj 22, 2008
Posty
110
Powiedzcie jak oznacza się przedziały w JS, bo tego nie mogę znaleźć, a mam taki inpucik ładny:
Kod:
<input type="text" name="ilsoc" id="ilosc">
i chciałem go zabezpieczyć, aby można było wpisywać tylko cyferki, więc zacząłem kombinować:
Kod:
function check(ilosc){
var ilosc;
if (ilosc !== [0-9]){
     alert("Musisz podać cyfre!");
}
}
i dodałem onKeyPress="check()" do mojego inputa.
ale niestety nie działa tak jak powinno, tzn. za każdym razem jak nacisnę coś na klawiaturze to mi wywala mojego alerta. Możecie powiedzieć gdzie popełniłem błąd? I go wyjaśnić.
 
Ostatnia edycja:

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
To powinno zadziałać:
Kod:
<script>
function check( e ){
	if( window.event ) k = e.keyCode; //IE
	else k = e.which;
	k = String.fromCharCode( k );
	if( k.search(/[\d\r]/) == -1 ) {
		alert('Tylko cyfry');
		return false;
	}
}
</script>
<input type="text" name="ilosc" onkeypress="return check(event)">
 

octonapewno

Użytkownik
Dołączył
Maj 22, 2008
Posty
110
to działa i to tak jak chce, tylko szkoda że tylko pod IE, jest możliwość aby pod FF, Opera działało także?
 

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
Działa tak, że przy naciśnięciu klawisza innego niż 0-9 i enter wyświetla błąd, jak chcesz dołączyć np. backspace to dodaj do RegExpa \b, zamist onkeypress możesz dać onchange i wycinać wszystkie znaki nie będące cyframi po wypełnieniu pola, możesz też zamiast sprawdzać kod klawisza filtrować wartość pola. Sprawdzałem przed chwilą i kod działa pod IE, Chrome, FF i Operą.
 
Do góry Bottom