Comment autoriser uniquement la saisie numérique dans le champ de saisie de texte HTML
On peut exploiter la fonction setInputFilter de JavaScript pour restreindre la saisie de l'utilisateur dans les champs de saisie de texte à caractères numériques et points décimaux ('.') :
function setInputFilter(textbox, inputFilter, errMsg) { ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop", "focusout"].forEach(function (event) { textbox.addEventListener(event, function (e) { if (inputFilter(this.value)) { if (["keydown", "mousedown", "focusout"].indexOf(e.type) >= 0) { this.classList.remove("input-error"); this.setCustomValidity(""); } this.oldValue = this.value; this.oldSelectionStart = this.selectionStart; this.oldSelectionEnd = this.selectionEnd; } else if (this.hasOwnProperty("oldValue")) { this.classList.add("input-error"); this.setCustomValidity(errMsg); this.reportValidity(); this.value = this.oldValue; this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd); } else { this.value = ""; } }); }); }
Pour imposer la saisie numérique, utilisez ce qui suit filter :
setInputFilter(document.getElementById("myTextBox"), function (value) { return /^\d*\.?\d*$/.test(value); });
Ce filtre valide la saisie par rapport à l'expression régulière ^d*.?d*$, qui accepte les chaînes contenant uniquement des chiffres, des points décimaux ou une combinaison des deux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!