Bir int veya float alanı isteyip istemediğinize bağlıdır. İkisi şöyle görünecektir:
<input type="number" name="int-field" id="int-field" placeholder="positive int" min="1" step="1">
<input type="number" name="float-field" id="float-field" placeholder="positive float" min="0">
İnt alanı, min 1 olduğundan doğru doğrulamaya eklenmiştir. Ancak float alanı 0 değerini kabul eder; bununla başa çıkmak için bir kısıtlama doğrulayıcı daha ekleyebilirsiniz :
function checkIsPositive(e) {
const value = parseFloat(e.target.value);
if (e.target.value === "" || value > 0) {
e.target.setCustomValidity("");
} else {
e.target.setCustomValidity("Please select a value that is greater than 0.");
}
}
document.getElementById("float-field").addEventListener("input", checkIsPositive, false);
JSFiddle burada.
Bu çözümlerin hiçbirinin kullanıcının geçersiz girdi yazmaya çalışmasını tamamen engellemediğini, ancak kullanıcının geçerli girdiyi yazıp yazmadığını anlayabileceğinizi checkValidity
veyareportValidity
anlayabileceğinizi unutmayın.
Tabii ki, kullanıcı istemci tarafı doğrulamasını her zaman yok sayabileceğinden, yine de sunucu tarafı doğrulamanız gerekir.