在文本框上按删除键或退格键获取删除的字符或文本
Getting deleted character or text on pressing delete or backspace on a textbox
我有一个文本框,我想在按退格键或删除键时得到删除的字符。
我有一个键向上事件处理程序,如果键是退格,我正在捕获。现在在这里面,我需要执行一些基于被删除的键的任务。请帮助。
在这个线程中对getCursorPosition
函数做了一点调整后,您可以通过跟踪当前光标的选择来删除字符。
代码处理以下条件:
- 键入,然后在末尾退格。
- 将光标移动到文本中间并删除/退格。
- 选择一段文字,然后删除/退格。
$.fn.getCursorPosition = function() {
var el = $(this).get(0);
var pos = 0;
var posEnd = 0;
if('selectionStart' in el) {
pos = el.selectionStart;
posEnd = el.selectionEnd;
} else if('selection' in document) {
el.focus();
var Sel = document.selection.createRange();
var SelLength = document.selection.createRange().text.length;
Sel.moveStart('character', -el.value.length);
pos = Sel.text.length - SelLength;
posEnd = Sel.text.length;
}
// return both selection start and end;
return [pos, posEnd];
};
$('#text').keydown(function (e) {
var position = $(this).getCursorPosition();
var deleted = '';
var val = $(this).val();
if (e.which == 8) {
if (position[0] == position[1]) {
if (position[0] == 0)
deleted = '';
else
deleted = val.substr(position[0] - 1, 1);
}
else {
deleted = val.substring(position[0], position[1]);
}
}
else if (e.which == 46) {
var val = $(this).val();
if (position[0] == position[1]) {
if (position[0] === val.length)
deleted = '';
else
deleted = val.substr(position[0], 1);
}
else {
deleted = val.substring(position[0], position[1]);
}
}
// Now you can test the deleted character(s) here
});
这里是Live Demo
您可以使用keydown事件处理程序,以便最后一个要删除的字符仍然可用:
$('textarea').on('keydown',function(e) {
var deleteKeyCode = 8,
value = $(this).val(),
length = value.length,
lastChar = value.substring(length-1, length);
if (e.which === deleteKeyCode) {
alert(lastChar);
}
});
现场演示
$('input').keydown(function(e){
$(this).data('prevVal', $(this).val());
}).keyup(function(e){
if(e.keyCode === 8) {//delete
var ele = $(this);
var val = ele.data('prevVal');
var newVal = ele.val();
var removedChar = val.substring(val.length-1);
alert(removedChar);
}
});
相关文章:
- 单击文本时删除文本框的默认数据
- 使用删除文本创建新行
- 为什么jQuery正在删除文本的最后一个字符
- 在验证之前从输入值中删除文本并提交
- 如何使用jquery从父元素中删除文本(不删除内部元素)
- 删除文本区域中某个文本后出现的换行符
- javascript:删除文本中选定元素的标记
- <tspan>文本</tspan>如果没有定义id或类,如何删除文本
- 从网站中删除文本选择限制的脚本
- 如何防止用户删除文本输入中的前三个字符
- 粘贴文本时删除文本区域中的字符
- 如何在文本输入中插入删除图标并实现删除文本
- 在 Ckeditor 中,删除文本前后的 br 标签
- 如何在javascript中使用动态ID删除文本框
- 如何删除文本节点
- Javascript 焦点删除文本突出显示
- 添加或删除文本框,然后使用 PHP 或 jquery 获取它们的值
- 动态删除文本框
- 当处于活动状态时,我如何删除文本修饰.我有以下代码,但链接带有下划线
- 使用 Javascript 添加文本框后动态删除文本框