Prefisso di un numero con + su input html

0

Quando chiedi numeri positivi di input su html, è valido per consentire + sulla casella di testo? Come +42? Sicuramente il segno + viene rimosso durante l'elaborazione lato server. Ma consentirà + di stare bene nella casella di testo html?

  • Potrebbe essere valido perché + denota un segno positivo.
  • Potrebbe non essere valido perché + è un simbolo speciale.

Qual è la migliore pratica per gestirlo?

    
posta morbidCode 04.07.2018 - 21:50
fonte

3 risposte

2

Dipende da:

  • Lo scopo del campo di inserimento.
  • Che utente si aspetta la pagina. (Punto di vista dell'esperienza utente)

Consente di discutere un esempio:

  • Per una pagina di e-shop non ha senso trattare numeri negativi, anche per sconti.
  • Per una pagina dashboard è possibile utilizzare numeri negativi per tracciare grafici.

La best practice è valutare i tuoi requisiti e solo se alcune funzionalità sono necessarie, puoi implementarle.

Il buon senso dice che ogni numero è sempre positivo, se non diversamente specificato.

Per la convalida

Uso di HTML Solo

Assegna al tag di input un numero di tipo e lascia che il browser esegua la convalida per te.

Citazione da MDN (controllare il collegamento sotto):

input elements of type "number" are used to let the user enter a number. They include built-in validation to reject non-numerical entries.

<input type="number" min="0" max="99">

Se puoi usare qualche Javascript

Sull'input, puoi posizionare la tua funzione di convalida personalizzata da chiamare su qualche evento.

<input type="number" onkeypress="myCustomValidation()">

In questo caso, la funzione myCustomValidation verrà chiamata in risposta all'evento automaticamente. Basta scegliere un evento appropriato da utilizzare.

Collegamenti correlati

MDN - Input - Tipo numero

MDN - Elenco eventi

StackOverflow - Input - Prevent Negative

    
risposta data 04.07.2018 - 23:05
fonte
0

Il valore di una casella di testo deve essere passato al server essenzialmente intatto, in genere è compito del backend rendere sicuro l'input.

Potresti permetterlo se il backend può analizzarlo come numero (molte lingue lo accettano), ma non lo farei avere una priorità elevata, dato che sarebbe piuttosto raro che qualcuno lo usasse.

    
risposta data 04.07.2018 - 22:48
fonte
0

La prima risposta è ottima.

Supponendo che eseguirai una funzione matematica sul numero. Sarebbe più semplice usare le convalide HTML integrate che sono descritte sopra. In questo modo è fatto direttamente nel browser senza la necessità di fare riferimento a uno script JS. È quindi possibile passare il numero positivo corretto allo script lato server.

Se non c'è motivo di avere il simbolo, quindi non accettarlo o elaborarlo, è solo uno spreco di risorse.

    
risposta data 05.07.2018 - 17:09
fonte

Leggi altre domande sui tag