Mam następujące znaczniki:Chrome/HTML5: numer typu wejścia nieprzestrzegający atrybutu max?
<input type="number" max="99" />
W Google Chrome (i ewentualnie innych przeglądarek WebKit), będzie to ograniczać spinner na strzałki w górę od wykraczających ponad 99, ale nie uniemożliwić użytkownikowi wpisując liczba wyższa niż 99. Nawet onblur, niepoprawna wartość nie jest usuwana/zamieniana lub nawet ostrzeżenie, ponieważ wartość jest nieważna.
Czy źle rozumiem, jak to ma działać, czy jest to błąd? Używam najnowszej wersji Chrome (19 w chwili pisania).
Edit:
celu wyjaśnienia, chcę wiedzieć, dlaczego liczba większa niż określona max może być wprowadzona w pierwszej kolejności. Zdaję sobie sprawę, że podaje on etykietkę na formularzu, informując Cię, że jest nieważny, ale wydaje się, że niespójne zachowanie nie pozwoli ci przekroczyć maksimum, ale możesz po prostu wpisać liczbę powyżej maksimum w dowolnym momencie, aby ominąć to.
Jeśli to pożądane zachowanie z jakiegoś powodu, dlaczego tak jest? I czy istnieje lepsza opcja wymuszenia zakresu wejściowego bez uciekania się do JS?
działa dobrze dla mnie, otrzymuję komunikat o błędzie „Wartość musi być mniejsza lub równa 99.”. Czy możemy zobaczyć twój aktualny kod? –
Chrome i Opera wysyłają ostrzeżenie, gdy próbuję przesłać formularz, którego numer jest poza zakresem: http://jsfiddle.net/j08691/Uv3EA/ – j08691
Dlaczego to ma być widoczne tylko przy składaniu formularza? A co ważniejsze, dlaczego jest w ogóle dozwolona? Ogranicza spinner, więc nie możesz użyć tego, aby wprowadzić wyższą wartość - dlaczego nie ma również ręcznego wprowadzania? I nie mogę użyć maksymalnej długości ani wzoru, aby to ograniczyć, ponieważ nie są one odpowiednie dla wejść typu liczbowego. Utknąłem, pisząc kleksy JS ... – FtDRbwLXw6