Ich möchte nur positive Werte erhalten. Gibt es eine Möglichkeit, dies zu verhindern, indem ich nur html
Bitte schlagen Sie keine Validierungsmethode vor
Antworten
Zu viele Anzeigen?Verwenden Sie die min
Attribut wie diese:
<input type="number" min="0">
Für mich war das die Lösung:
<input type="number" min="0" oninput="this.value = Math.abs(this.value)">
Modifier
Wie in den Kommentaren vorgeschlagen, mit einer kleinen Änderung, damit es funktioniert, wenn 0 der Mindestwert ist.
<input type="number" min="0" oninput="this.value =
!!this.value && Math.abs(this.value) >= 0 ? Math.abs(this.value) : null">
Ich war nicht zufrieden mit @Abhrabm Antwort denn:
Es wurde nur verhindert, dass negativ die Eingabe von Nummern aus Pfeile nach oben/unten, während der Benutzer negative Zahlen über die Tastatur eingeben kann.
Die Lösung ist die Vorbeugung mit Tastencode :
// Select your input element.
var number = document.getElementById('number');
// Listen for input event on numInput.
number.onkeydown = function(e) {
if(!((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCode > 47 && e.keyCode < 58)
|| e.keyCode == 8)) {
return false;
}
}
<form action="" method="post">
<input type="number" id="number" min="0" />
<input type="submit" value="Click me!"/>
</form>
Klärung durch @Hugh Guiney :
Welche Schlüsselcodes geprüft werden:
- 95, < 106 entspricht dem Numpad 0 bis 9;
- 47, < 58 entspricht 0 bis 9 in der Zahlenreihe; und 8 ist Rücktaste.
Dieses Skript verhindert also, dass ein ungültiger Schlüssel in die Eingabe eingegeben wird.
- See previous answers
- Weitere Antworten anzeigen