Korzystam z jQuery Tools Validator, który implementuje sprawdzanie poprawności HTML5 poprzez jQuery. Do tej pory działało świetnie, z wyjątkiem jednej rzeczy. W specyfikacji HTML5 typ wejściowy „liczba” może mieć zarówno liczby całkowite, jak i liczby zmiennoprzecinkowe. Wydaje się to niezwykle krótkowzroczne, ponieważ będzie to użyteczny walidator tylko wtedy, gdy twoje pola bazy danych są podpisane liczbami zmiennoprzecinkowymi (w przypadku niepodpisanych liczb wewnętrznych musisz wrócić do sprawdzania poprawności „wzorca”, a tym samym utracić dodatkowe funkcje, takie jak góra i dół strzałki dla przeglądarek, które go obsługują). Czy istnieje inny typ danych wejściowych, a może atrybut, który ograniczyłby dane wejściowe do liczb całkowitych bez znaku? Nie mogłem znaleźć, dzięki.
EDYTOWAĆ
Ok, doceniam wasz czas i pomoc, ale widzę wielu niezasłużonych głosowań: D. Ustawienie kroku na 1 nie jest odpowiedzią, ponieważ nie ogranicza wprowadzania danych. Nadal możesz wpisać ujemną liczbę zmiennoprzecinkową w polu tekstowym. Jestem również świadomy sprawdzania poprawności wzoru (wspomniałem o tym w moim oryginalnym poście), ale nie było to częścią pytania. Chciałem wiedzieć, czy HTML5 pozwala na ograniczenie wprowadzania typu „liczba” do dodatnich wartości całkowitych. Wydaje się, że na to pytanie odpowiedź brzmiałaby „nie, nie ma”. Nie chciałem używać sprawdzania poprawności wzorców, ponieważ powoduje to pewne wady podczas sprawdzania poprawności narzędzi jQuery, ale wydaje się, że specyfikacja nie pozwala na czystszy sposób na zrobienie tego.
number
wejściowe (przynajmniej w FF / Chrome / Safari) domyślnie akceptują tylko liczby całkowite, chyba że ustawisz jawną wartośćstep
atrybutu, która zezwala na wartości dziesiętne; npstep="0.01"
. : Udokumentowane MDN tutaj . W dwóch myślach o tym, ponieważ uważam, że jest to rozsądna wartość domyślna, ale także przełomowa zmiana (tak, wpłynęło to na kod, który napisałem).