Как обнаружить, какой текст пользователь вставляет в текстовой области с JS?
Вы можете использовать событие paste для обнаружения вставки в большинстве браузеров (особенно в Firefox 2) . Когда вы обрабатываете событие вставки, запишите текущий выбор, а затем установите короткий таймер, который вызывает функцию после завершения вставки. Затем эта функция может сравнивать длину и знать, где искать вставленный контент. Примерно так. Для краткости функция, которая выбирает текстовое поле, не работает в IE. См. Здесь: Как получить начальную и конечную точки выделения в текстовой области?
function getTextAreaSelection(textarea) {
var start = textarea.selectionStart, end = textarea.selectionEnd;
return {
start: start,
end: end,
length: end - start,
text: textarea.value.slice(start, end)
};
}
function detectPaste(textarea, callback) {
textarea.onpaste = function() {
var sel = getTextAreaSelection(textarea);
var initialLength = textarea.value.length;
window.setTimeout(function() {
var val = textarea.value;
var pastedTextLength = val.length - (initialLength - sel.length);
var end = sel.start + pastedTextLength;
callback({
start: sel.start,
end: end,
length: pastedTextLength,
text: val.slice(sel.start, end)
});
}, 1);
};
}
var textarea = document.getElementById("your_textarea");
detectPaste(textarea, function(pasteInfo) {
alert(pasteInfo.text);
// pasteInfo also has properties for the start and end character
// index and length of the pasted text
});
Следующее может помочь вам
function submitenter(myfield,e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;
if (keycode == //event code of ctrl-v)
{
//some code here
}
}
<teaxtarea name="area[name]" onKeyPress=>"return submitenter(this,event);"></textarea>