js实现按一下删除键删除整个单词附demo

时间:2021-05-26

在文本框倒叙输入一文中提到了设置文本框焦点的javascript代码,今天就使用这段代码来做一个Demo。内容就是当删除单词时就一次性删除整个单词,如图所示:

下面我把示例代码贴上:

<!DOCTYPE html><html><head><title></title><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><style>.content {width: 300px;margin: 0 auto;}</style><script src="http://cdn.staticfile.org/jquery/2.1.1-rc2/jquery.min.js"></script></head><body><div class="content"><textarea name="" id="demo" cols="30" rows="10"></textarea></div><script>var getCursortPosition = function(ctrl) {var CaretPos = 0;// IE Supportif (document.selection) {ctrl.focus();var Sel = document.selection.createRange();Sel.moveStart ('character', -ctrl.value.length);CaretPos = Sel.text.length;}// Firefox supportelse if (ctrl.selectionStart || +ctrl.selectionStart === 0){CaretPos = ctrl.selectionStart;}return (CaretPos);};var selectSomeText = function(element,begin,end){if (element.setSelectionRange){element.setSelectionRange(begin,end);}else if (element.createTextRange){var range = element.createTextRange();range.moveStart("character",begin);range.moveEnd("character",end);range.select();}};var delWholeWord = function(text, field, pos){var startIndex = pos;if (field.charAt(pos-1) !== ' '){for (var i=pos-2;i>=0;i--){if (field.charAt(i) === ' ' || i === 0){startIndex = i;break;}}selectSomeText(text, startIndex, pos)}};$('#demo').keydown(function(event) {if(event.keyCode !== 8) {return;}var bodyText = $(this)[0];var bodyField = $(this).val();var pos = getCursortPosition(bodyText);delWholeWord(bodyText, bodyField, pos);});</script></body></html>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章