![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 26.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
w jaki sposob sprawdzić czy w polu input została wpisana wartość liczbowa. Tworzę formularz - i muszę w nim sprawdzić przed wysłaniem do skryptu php czy wartośc wpisana w pole "masa" jest liczbą czy tekstem. Jezeli wystepuje teks - to powinien zostać wywolany komunikat o błędzie (atert). W zasadzie przydałoby się też sprawdzenie czy do wpisania liczby zastosowano przecinek, czy kropkę . Z założenia powinien być wpisany przecinek. I daltego Skrypt w javie powinien rozpoznać , jaki znak został zastosowany. W przypadku użycia kropki powinien pojawić się komunikat (alert) o błędzie. Oto przykładowy kod formularza Zwracam sie z prośbą o pomoc w rozwiązaniu mojego problemu. Jak powinien wygląfdac zapis sprawdzający te zalożenia? Niestety java dla mnie to "czarna magia" Za okazane zrozumienie, sugestie i pomoc z góry bardzo dziekuję. -------------------- marko
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 3.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Masz taką małą funkcyjkę: Kod function isNumeric(sText, minus) { var ValidChars = "0123456789"; var IsNumber=true; var Char; for (i = 0; i < sText.length && IsNumber == true; i++) { Char = sText.charAt(i); if ((i == 0) && (Char == "-") && minus) continue; if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; } Pozdrawiam Marcin Staniszczak |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 9.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
@MStaniszczak: Funkcja dziurawa. Nie obsługuj przecinków, kropek...
Można to zrobic łatwiej, przy użyciu wyrażeń regularnych... ![]() Kod function check() { var reg = /^-?\d+(([,\.]?\d+)|())$/; if(reg.test(document.forms['formularz'].masa.value)) { return true; } else { alert("Wpisz wartosc liczbowa!"); return false; } } Oczywiście potem należy dodać procedure obsługi zdarzenia onsubmit do formularza:
Powinno działać... ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 3.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Bo jest do integerow (chyba niezgrabnie nazwana;-)
To jest do Floatow;-) Kod function isFloat(sText) { var ValidChars = "0123456789.,"; var IsNumber=true; var Char; for (i = 0; i < sText.length && IsNumber == true; i++) { Char = sText.charAt(i); if ((i == 0) && (Char == "-")) continue; if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; } Ale przyznaje - Twoje rozwiązenie jest lepsze - moje przepuszca np 1.1.1 czy 1.2,3... Ja staram sie unikc regexp-ów ze względu na wydajność, ale tu czasem się nie da;-) Pozdrawiam Marcin Staniszczak Ten post edytował MStaniszczak 6.03.2005, 14:24:35 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 91 Pomógł: 0 Dołączył: 25.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Kod function isNumSpec(n){return/^(\d+[\.,]|)\d+$/.test(n+'')} Autor:PiotrB.[pl.comp.www] Niestety Piotr ubiegł mnie - chyba nic lepszego nie da się wymyśleć ![]() Chyba żeby użyć isNaN(), ale wówczas przecinki odpadają... Ten post edytował Vir 6.03.2005, 21:31:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 15:04 |