HTML - onpaste事件删除多余的空格

时间:2015-01-30 04:12:52

标签: javascript html

我有一个带有额外空格的输入文本字段

12 12 12

我希望在将其粘贴到我的文本字段后删除多余的空格。

121212

但是,我的代码似乎对我不起作用。

HTML

<input type="text" id="text1" onPaste="try123(this.id);"/>​

的JavaScript

&#13;
&#13;
function try123(fId) {
cleanExtraSpace = function (e) {
        e.preventDefault();
        var pastedText = '';
        //IE browser OnPaste Event Handler
        if (window.clipboardData && window.clipboardData.getData) { 
        pastedText = window.clipboardData.getData('Text');
      } else if (e.clipboardData && e.clipboardData.getData) {
        pastedText = e.clipboardData.getData('text/plain');
      }
        //Remove start and end extra spaces on paste
        this.value = pastedText.replace(/\D/g, '');
    };
fId.onpaste =  cleanExtraSpace;
}
&#13;
<input type="text" id="text1" onPaste="try123(this.id);"/>​
&#13;
&#13;
&#13;

我指的是这篇文章, JavaScript - Remove Space on paste

有人可以帮我纠正吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

请尝试以下操作。

输入:<input type="text" id="nums" name="nums">

var input = document.getElementById('nums');

function handleInput(e) {
  var el = this;

  window.setTimeout(function() {
    el.value = el.value.replace(/\D/g, '');
  }, 0);
}

input.addEventListener('paste', handleInput, false);

以下是一个实例:http://jsbin.com/lozobamequ/1/edit?html,js,output

答案 1 :(得分:0)

尝试这个。

HTML

<input type="text" id="search" name="search">

JavaScript

document.getElementById('search').addEventListener('paste', handlePaste);

function handlePaste(e){
    e.preventDefault();
    var clipboardData = e.clipboardData || window.clipboardData;
    var pastedData = clipboardData.getData('Text');
    var searchField = document.getElementById('search');
    searchField.value = pastedData.trim();
}

使用它可以删除多余的空格(键盘粘贴和鼠标粘贴)。