2014-12-06 18 views
5

Mam formularz, który ma jedno opcjonalne wejście i 3 wymagane pola wprowadzania. Dla wejścia opcjonalnego mam poniżej znaczników:Parsley.js - Sprawdź poprawność opcjonalnego wejścia tylko dla numerów

<input type="number" placeholder="0" min="0" max="20000" step="100" data-parsley-validation-threshold="1" data-parsley-trigger="keyup"> 

nie ogień walidacji jeśli mam wpisać liter lub innych znaków. Sprawdza poprawność wartości minimalnych i maksymalnych. Jeśli wstawię wymagany atrybut, wydaje się, że działa, ale nie chcę tego. Próbowałem również zdefiniować wzór poniżej:

data-parsley-pattern="^[0-9]*$" 

Żadne z nich nie działa. Jakieś pomysły?

+0

Aby wyjaśnić, chcesz być pole opcjonalne (tak, to pole może być puste). Jednak jeśli użytkownik ustawi jakąś wartość, to ma być liczbą całkowitą. Czy to to ? –

+0

@milz Tak, to jest poprawne – user3312508

Odpowiedz

14

Można użyć data-parsley-type="digits". Zauważ użycie type="text" zamiast number.

Działa to, jeśli chcesz zezwolić tylko na cyfry (bez spacji).

<input type="text" placeholder="0" min="0" max="20000" step="100" 
    data-parsley-validation-threshold="1" data-parsley-trigger="keyup" 
    data-parsley-type="digits" /> 

Jeśli chcesz pływaków, można użyć data-parsley-type='number':

<input type="text" placeholder="0" min="0" max="20000" step="100" 
    data-parsley-validation-threshold="1" data-parsley-trigger="keyup" 
    data-parsley-type="number" /> 
+0

To wydaje się działać, ale co, jeśli muszę również zaakceptować wartości zmiennoprzecinkowe? jak 10,5? – user3312508

+0

@ user3312508 Zaktualizowałem odpowiedź, aby zezwolić na pływaki. –

+0

To pozornie kończy się sprawdzaniem poprawności HTML, ponieważ mam tekst typu, a następnie min max atrybuty. Nie pokazuje również funkcji inkrementacji/dekrementacji. Na przykład: http://cl.ly/image/2P0k3H3W0S2r Jakikolwiek środek zaradczy? Z góry dziękuję;) – user3312508

Powiązane problemy