【问题标题】:disable space bar or paste a space using JavaScript or jQuery使用 JavaScript 或 jQuery 禁用空格键或粘贴空格
【发布时间】:2019-09-07 14:10:47
【问题描述】:

我需要限制/禁止最终用户在输入字段或文本框字段中输入空格。目前我正在使用此代码,但它无法正常工作。

function keyPress(e) { 
        var e = window.event || e;
        var key = e.keyCode;
        //space pressed
         if (key == 32) { //space
         return;
         }
        }

【问题讨论】:

  • 为什么不直接使用验证来告诉用户他们输入的内容不正确?

标签: javascript jquery


【解决方案1】:

尝试使用 keydown 代替 keypress。

function keyDown(e) { 
  var e = window.event || e;
  var key = e.keyCode;
  //space pressed
   if (key == 32) { //space
    e.preventDefault();
   }
         
}
<input type="text" onkeydown="keyDown(event)" />

编辑

如果您想阻止插入包含空格的粘贴文本,您可以使用以下代码:

function keyDown(e) { 
    var e = window.event || e;
    var key = e.keyCode;
    //space pressed
    if (key == 32) { //space
        e.preventDefault();
    }
}

function checkWhitespace(event)
{
	var data = event.clipboardData.getData("text/plain");
    var isNullOrContainsWhitespace = (!data || data.length === 0 || /\s/g.test(data));
  
    if(isNullOrContainsWhitespace)
    {
  	  event.preventDefault(); 
    }
  
}
<input type="text" onkeydown="keyDown(event)" onpaste="checkWhitespace(event)" />

【讨论】:

  • 查看MDN: keypress 以进一步阅读。
  • 那么粘贴文本呢?您可以简单地粘贴带有空格键的文本,例如“lorem ipsu”,但此解决方案将不起作用。更好的办法是清除removing spacebars 的输入
【解决方案2】:

试试这个,

function keyPress(e) { 
    var e = window.event || e;
    var key = e.keyCode;
    //space pressed
    if (key == 32) { //space
        return false;
    }
    return true;
}

【讨论】:

    【解决方案3】:

    试试这个文本框的onkeypress事件代码

    <input type="text" onkeypress="keyDown()"/>
    
    <script>
    function keyDown(e) { 
      var e = window.event || e;
      var key = e.keyCode;
      //space pressed
       if (key == 32) { //space
        e.preventDefault();
       }
             
    }
    </script>

    【讨论】:

      【解决方案4】:

      <!-- Javascript  -->
      <!-- prevent space in text box by  -->
      function RestrictSpace() {
        if (event.keyCode == 32) {
          return false;
        }
      }
      
      <!--preventing copy and pasting to text box-->
      function preventcopypaste(event) {
        var data = event.clipboardData.getData("text/plain");
        var isNullOrContainsWhitespace = (!data || data.length === 0 || /\s/g.test(data));
      
        if (isNullOrContainsWhitespace) {
          event.preventDefault();
        }
      
      }
      <!-- HTML  -->
      <input type="text" onkeypress="return RestrictSpace()" onpaste="preventcopypaste(event)" />

      【讨论】:

        猜你喜欢
        • 2022-12-17
        • 1970-01-01
        • 2012-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-13
        • 2017-05-22
        • 2016-11-29
        相关资源
        最近更新 更多