Bonjour,
Je suis en train de développer une petite web app qui sera utilisée sur Firefox Android.
J'ai un formulaire où l'utilisateur devra entrer un prix. Je souhaite qu'il soit au format XX,XX ou X est un nombre. La validation s'effectue correctement mais le problème c'est qu'elle permet quand même d'entre un nombre sans virgule qui sera interprété en BDD par XX,00.
Par exemple il est possible d'entre 12 qui apparaîtra comme 12,00.
Voici mon code. Comment corriger le problème ?
<input class="form-control" id="prix" name="prix" type="number" pattern="^\d+?\,\d\d$" step="0.01" formnovalidate placeholder="Prix" required>


https://jsfiddle.net/j068zb5e/
Merci.
Modifié par jean-charles1134 (26 May 2020 - 09:00)
AH oui, j'ai fait quelques tests et ta regex fonctionne dans l'absolu sur une routine JS comme celle-ci:
var regex = /^\d+\,\d\d$/g; 
var input = "12,25"; 
if(regex.test(input)) {
  var matches = input.match(regex);
  for(var match in matches) {
	alert("entrée correcte="+matches[match]);
  } 
} else {
  alert("Format incorrect!");
}

où elle n'accepte pas un chiffre sans la virgule, contrairement au test du pattern par le navigateur (Chrome chez moi) qui semble "trop intelligent" en "devinant" que 12 = 12,00.
Il faudrait que tu ajoutes un contrôle via une routine comme ci-dessus interceptant la validation du formulaire.
A moins qu'il y ait un moyen de contrôler mieux l'action de Pattern...?
Mes maigres connaissances ne sont pas capables de te dépanner plus:
Appel aux experts...!