我正在使用Jquery Mobile开发适用于Android和iPhone的Web应用程序。我想在用户在输入文本字段中更改其值时处理该事件。
最初,我使用.on("keyup change")
,似乎一切正常。但是,当用户在文本字段上粘贴一些文本时(通过按住并点击“粘贴”),我的事件处理程序不会被调用。
如果你知道如何解决这个问题,请帮助我。
谢谢你们。
适用于所有浏览器但不适用于FireFox。
$('input').on('paste', function (e) {
if (e.originalEvent.clipboardData) {
var text = e.originalEvent.clipboardData.getData("text/plain");
$('p').empty();
$('p').append(text);
}
});
归功于:jQuery Detect Paste Event Anywhere on Page and "Redirect" it to Textarea
以下是适用于移动Safari和Chrome的功能。
if (document.getElementById('search_input')) {
document.querySelector('#search_input').addEventListener('paste', (e) => {
let pasteData = (e.clipboardData || window.clipboardData).getData('text');
pasteData = pasteData.replace(/[^\x20-\xFF]/gi, '');
window.setTimeout(() => {
//do stuff
});
});
}