【问题标题】:JavaScript keypress or keyup to control key valueJavaScript keypress 或 keyup 来控制键值
【发布时间】:2016-12-23 19:05:08
【问题描述】:

在我的项目中输入文本框 keypress 或 keyup 事件调用此函数中的 maxlimit 函数检查当前值是否大于最大限制值以删除当前 keynum 值。 (即)我将最大限制设置为 23,然后我输入 22 以允许

现在文本框的值是 22 ,然后我输入 212 只需要删除 1 。 otherwsie 322 仅删除 3,对整个文本不清楚。这可能吗?

Javascript

 function hour(id, e) 
 { 
     var keynum; 
     if (window.event) // IE
      { 
          keynum = e.keyCode; 
      } 
      else if (e.which) 
      {
          keynum = e.which; 
      } 
      if (id !== undefined) 
      {
          console.info("Text box Value : " + id.value); 
          console.info("Charcter key press value : " + String.fromCharCode(keynum)); 
           console.info("Now Key press Position :"+id.value.indexOf(keynum));
          var currentValue = id.value + String.fromCharCode(keynum); 
          console.info("Combine value :"+currentValue); 

          if (currentValue > 23)
          { 
            ............... 
          } 
      } 
      else 
      {
              ............
      }
 }

【问题讨论】:

  • 不完全相关,但if (window.event)不是可靠的IE检查,Chrome也实现了全局事件对象。
  • 另外,从keyCode/which 获取字符也不可靠。例如。在数字键盘上输入数字时,代码将失败。

标签: javascript


【解决方案1】:

if (currentValue > 22) { currentValue = 22; }

应该可以解决问题。 212 将设置为 22,332 将设置为 22,999 将设置为 22,依此类推。

【讨论】:

    【解决方案2】:

    var input=document.getElementById('input');
    
    input.oninput=function(){
      if(parseInt(input.value)>parseInt(input.max))
        input.value=input.max;
      };
    <input id="input" type="number" max="22">

    【讨论】:

      猜你喜欢
      • 2020-12-14
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 2011-12-14
      • 2013-02-15
      相关资源
      最近更新 更多