2014-12-06 4 views
5

Ho un modulo che ha un input opzionale e 3 campi di input obbligatori. Per l'ingresso opzionale ho il markup di seguito:Parsley.js - Convalida l'input facoltativo solo per i numeri

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

Questo non sparare la convalida se ho tipo in lettere o altri caratteri. Valida per valori min e max. Se metto l'attributo richiesto sembra funzionare ma non lo voglio. Ho anche provato a definire uno schema come segue:

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

Nessuno di loro sembra funzionare. Qualche idea?

+0

Per chiarire, si desidera il campo per essere facoltativa (così, il campo può essere vuoto). Tuttavia, se l'utente imposta qualche valore, vuoi che sia intero. È così? –

+0

@milz Sì, è corretto – user3312508

risposta

14

È possibile utilizzare data-parsley-type="digits". Si noti l'uso di type="text" anziché number.

Questo funziona se si desidera consentire solo cifre (non float).

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

Se volete galleggianti, è possibile utilizzare 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

Sembra funzionare, ma cosa succede se devo accettare anche i valori fluttuanti? come 10,5? – user3312508

+0

@ user3312508 Ho aggiornato la risposta per consentire i float. –

+0

Apparentemente questo fallisce nella convalida HTML perché ho testo tipo e quindi attributi min min. Inoltre non mostra le funzioni di incremento/decremento. Ad esempio: http://cl.ly/image/2P0k3H3W0S2r Qualsiasi rimedio? Grazie in anticipo;) – user3312508