Javascript HTML-onpaste事件删除额外空格
我有一个带有额外空格的输入文本字段Javascript HTML-onpaste事件删除额外空格,javascript,html,Javascript,Html,我有一个带有额外空格的输入文本字段 12 12 12 我想在将其粘贴到文本字段后删除多余的空格 121212 然而,我的代码似乎不适合我 HTML JavaScript 功能try123(fId){ cleanExtraSpace=函数(e){ e、 预防默认值(); var pastedText=''; //IE浏览器OnPaste事件处理程序 if(window.clipboardData&&window.clipboardData.getData){ pastedText=win
12 12 12
我想在将其粘贴到文本字段后删除多余的空格
121212
然而,我的代码似乎不适合我
HTML
代码>
JavaScript
功能try123(fId){
cleanExtraSpace=函数(e){
e、 预防默认值();
var pastedText='';
//IE浏览器OnPaste事件处理程序
if(window.clipboardData&&window.clipboardData.getData){
pastedText=window.clipboardData.getData('Text');
}else if(e.clipboardData&&e.clipboardData.getData){
pastedText=e.clipboardData.getData('text/plain');
}
//删除粘贴时的开始和结束额外空格
this.value=pastedText.replace(/\D/g');
};
fId.onpaste=清除外部空间;
}
代码>请尝试以下操作
输入:
这里有一个活生生的例子:试试这个
HTML
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();
}
使用此选项可以删除额外的空格(键盘粘贴和鼠标粘贴)。谢谢。但是可以从HTML调用函数吗?例如
,因为我有很多文本字段需要应用这个函数。内联JavaScript是一个非常糟糕的做法,现在已经过时了。你做这样的事情会更好:+1这对我也很有用。但是我很好奇(并且已经试着找到了答案)——为什么必须将el.value.replace
函数包装在窗口中。setTimeout
?我试着将它简化为this.value.replace(/\D/g')代码>,但显然这不起作用,否则您会这样写的。为什么需要设置超时
?来自评论:嗨,请不要只回答源代码。试着提供一个关于你的解决方案如何工作的很好的描述。请参阅:。感谢此解决方案不考虑光标位置或所选文本,而是使用剪贴板中的数据替换整个值。因此,我不建议使用这段代码。
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();
}