input限制输入

要求:input框只能输入0-12的数字,且当输入数字大于12,则值为最大值12,输入数字小于0,则值为最小值0。

<input type="text" oninput="limiteValue(this)"  onpropertychange="limiteValue(this)"/>

注:oninput 事件在用户输入时触发。该事件在 <input> 或 <textarea> 元素的值发生改变时触发。这里主要应用于非IE浏览器下值的改变时触发该oninput事件。

  而IE9以下版本的浏览器不支持oninput事件,所以需要使用ie的专属事件onpropertychange(属性值改变时触发)。

提示: oninput,onpropertychange事件类似于 onchange 事件。不同之处在于 oninput,onpropertychange 事件在元素值发生变化是立即触发, onchange 在元素失去焦点时触发,且onpropertychange为IE专属。

function limiteValue(obj){
  obj.value=obj.value.replace(/[^d]/g,'');//输入的值仅是数字
  if(obj.value>12){
    obj.value=12;
  }
  if(obj.value<0){
    value=0;
  }
  if(obj.value.length>2){   //2位数字
    obj.value=obj.value.slice(0,2);
  }
  if(obj.value.substr(0,1) == '0' && obj.value.length == 2){  //当输入00,01这类时,去除首数字0
                obj.value= obj.value.substr(1,obj.value.length);      
       }  
}

原文地址:https://www.cnblogs.com/JonlyZhang/p/9747297.html