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

问题描述 投票:0回答:2

我的输入文本字段带有多余的空格,

12 12 12

并且我想将多余的空格粘贴到我的文本字段中。

121212

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

HTML

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

JavaScript

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;
}
<input type="text" id="text1" onPaste="try123(this.id);"/>​

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

[有人可以帮我改正吗?

提前感谢。

javascript html
2个回答
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


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();
}

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

© www.soinside.com 2019 - 2024. All rights reserved.