2016-05-05 8 views
17

Jak uniknąć wartości dziesiętnych z wprowadzania liczby w HTML5. Obecnie pozwala użytkownikowi na wpisanie wartości dziesiętnej.Jak uniknąć wartości dziesiętnych w typie wejściowym o numerze

+5

Kwestia ta została już aswered: [html5 liczba input type że zajmuje tylko liczby całkowite] (https://stackoverflow.com/questions/8808590/html5-number-input-type-that-takes -tylko-całkowite) – lucask

+1

Próbowałem metody wzorca, Ale chciałbym mieć zachowanie takie samo jak pole liczbowe. w przypadku użycia wzoru nie sprawdza się, dopóki wartość nie zostanie przesłana. Tak jak pole liczbowe nie pozwala użytkownikowi na wpisywanie alfabetów, jest jakikolwiek sposób, abym mógł również zatrzymać wartość okresu. – Kumar

Odpowiedz

5

Powinieneś opublikować, co próbowałeś, gdy zadajesz pytania.

Aby używać wyłącznie liczb całkowitych, zmień następujący atrybut.

step="any" 

do

step="1" 
+8

za pomocą atrybutu step nadal pozwala użytkownikowi na wpisanie wartości dziesiętnej. Tak jak pole liczbowe nie pozwala użytkownikowi na wpisywanie alfabetów, czy jest jakiś sposób, żebym mógł ograniczyć użytkownika do wpisywania wartości zmiennoprzecinkowych – Kumar

7

Zastosowanie wzór atrybut

<input type="number" name="num" pattern="[0-9]" title="Numbers only"> 

Więcej szczegółów http://www.w3schools.com/tags/att_input_pattern.asp

FIDDLE

+6

Po prostu notatka: Wydaje się, że sprawdza się to tylko po przesłaniu formularza, w którym znajduje się dane wejściowe; nie zapobiega wprowadzeniu liczb dziesiętnych, ani nie wskazuje, że pole jest błędne przed przesłaniem formularza. –

+1

Notatka dodatkowa: 1.0 zwróci jako prawidłową wartość, która może lub nie może poprawić w zależności od tego, co chcesz. – Michael

+0

Dokładnie tego, czego szukałem, dzięki. – Brandon

19

Alternatywą dla dostarczonych odpowiedzi jest monitorowanie naciśnięcia przycisku na wejściu. Osobiście lubię zostawiać atrybut type="number". Oto JSFiddle

<form action="#" method="post"> 
    Numbers: <input name="num" 
        type="number" 
        min="1" 
        step="1" 
        onkeypress="return event.charCode >= 48 && event.charCode <= 57" 
        title="Numbers only"> 
    <input type="submit"> 
</form> 
+0

To rozwiązanie działa doskonale, aby unikać wejść innych niż liczby [0-9]. Idealny. – naamadheya

+6

Wygląda na to, że wyłącza również klawisze Backspace i Delete w FireFox, co nie jest idealne podczas edycji pola wejściowego. – AfromanJ

+2

nadal można kliknąć prawym przyciskiem myszy, aby wprowadzić inne wejścia. –

Powiązane problemy