如何在html文本字段中限制数字的最大值和最小值

我有一个文本字段,应允许用户输入数字,最大长度应为2,最大值应为31,最小值应为1我能够前2个条件,但不知道最后2个条件

有人可以帮帮我吗?

 function isNumber(evt) { evt = (evt) ? evt : window.event; var charCode = (evt.which) ? evt.which : evt.keyCode; if (charCode > 31 && (charCode  57)) { return false; } return true; } 

NOte我不想使用HTML5输入类型=“数字”

试试这个(Purely Jquery方法):

HTML:

  

JQUERY:

 $('[name="ccdate"]').keyup(function(){ if(parseInt($(this).val()) > 31){ $('#div1').html('value cannot be greater then 31'); $(this).val(''); } else if(parseInt($(this).val()) < 1) { $('#div1').html('value cannot be lower then 1'); $(this).val(''); } else { $('#div1').html(''); } }); 

工作演示


编辑: - (根据提问者评论检查用户输入的字符串或数字):

 $('[name="ccdate"]').keyup(function(){ if(isNaN($(this).val())) { $('#div1').html('entered string'); $(this).val(''); } else if(parseInt($(this).val()) > 31){ $('#div1').html('value cannot be greater then 31'); $(this).val(''); } else if(parseInt($(this).val()) < 1) { $('#div1').html('value cannot be lower then 0'); $(this).val(''); } else { $('#div1').html(''); } }); 

工作演示


编辑: - (纯Javascript方法)(只需为您的文本框提供一个唯一的id ,说't1'

 document.getElementById('t1').addEventListener('keyup', function(){ this.value = (parseInt(this.value) < 1 || parseInt(this.value) > 31 || isNaN(this.value)) ? "" : (this.value) }); 

工作演示

 document.querySelector("*[name=ccdate]").addEventListener("input", function () { var num = +this.value, max = 31, min = 1; //converts value to a Number if(!this.value.length) return false; //allows empty field this.value = isNaN(num) ? min : num > max ? max : num < min ? min : num; }); 

http://jsfiddle.net/cha9t3g5/2

使用min和max属性,如果您希望用户输入数字,请将输入类型设为数字,而不是将其作为文本提供…

  

请根据您的要求更正以下代码。

 ` `