Jak uzyskać „rzeczywistą” wartość <input type="number">
pola?
Mam input
pudełko i używam nowszego typu wprowadzania HTML5 number
:
<input id="edQuantity" type="number">
Jest to obsługiwane głównie w Chrome 29:
Teraz potrzebuję możliwości odczytania „surowej” wartości wprowadzonej przez użytkownika w polu wprowadzania. Jeśli użytkownik wprowadził numer:
wtedy edQuantity.value = 4
i wszystko jest w porządku.
Ale jeśli użytkownik wprowadzi nieprawidłowy tekst, chcę pokolorować pole wejściowe na czerwono:
Niestety, dla type="number"
pola wejściowego, jeśli wartość w polu tekstowym nie jest liczbą, to value
zwraca pusty ciąg:
edQuantity.value = "" (String);
(przynajmniej w Chrome 29)
Jak mogę uzyskać „surową” wartość <input type="number">
kontrolki?
Próbowałem przejrzeć listę innych właściwości pola wprowadzania w Chrome:
nie widziałem niczego, co przypominałoby rzeczywiste dane wejściowe.
Nie mogłem też znaleźć sposobu, aby stwierdzić, czy pudełko jest „puste” , czy nie. Może mogłem wywnioskować:
value isEmpty Conclusion
============= ============= ================
"4" false valid number
"" true empty box; not a problem
"" false invalid text; color it red
Uwaga : możesz zignorować wszystko po linii poziomej; to tylko wypełniacz, aby uzasadnić pytanie. Ponadto: nie myl przykładu z pytaniem. Ludzie mogą chcieć odpowiedzi na to pytanie z powodów innych niż kolorowanie ramki na czerwono (jeden przykład: konwersja tekstu "four"
na "4"
symbol łaciński podczas zdarzenia onBlur)
Jak mogę uzyskać „surową” wartość <input type="number">
kontrolki?
Czytanie bonusowe
validity
stanu - Spodziewam się, typeMismatch
ale nie sprawdził się.
blah
to nieprawidłowa liczba”.
number
to nie jest typem wejściowym, którego szukasz; użyj normalnegotext
wejścia.