A5下载站:努力做内容最丰富最安全的下载站! 网站地图最新更新下载排行专题软件发布

热门软件

地铁跑酷

冒险迷岛

全民迷宫

连连消大作战

小河狸创客

阿里健康医鹿

支付宝app

番薯小说

MOMO陌陌

虾米音乐app

位置导航:A5下载 > 源码技巧 > 父类数据

JavaScript让Textarea支持tab按键的方法

时间:2015-06-29 11:55来源:a5源码作者:zhao浏览:48
这篇文章主要介绍了JavaScript让Textarea支持tab按键的方法,涉及javascript针对textarea实现响应tab按键的方法,需要的朋友可以参考下……

本文实例讲述了JavaScript让Textarea支持tab按键的方法。分享给大家供大家参考。具体实现方法如下:

HTMLTextAreaElement.prototype.getCaretPosition = function () {

//return the caret position of the textarea

return this.selectionStart;

};

HTMLTextAreaElement.prototype.setCaretPosition = function (position) {

//change the caret position of the textarea

this.selectionStart = position;

this.selectionEnd = position;

this.focus();

};

HTMLTextAreaElement.prototype.hasSelection = function () {

//if the textarea has selection then return true

if (this.selectionStart == this.selectionEnd) {

return false;

} else {

return true;

}

};

HTMLTextAreaElement.prototype.getSelectedText = function () {

//return the selection text

return this.value.substring(this.selectionStart, this.selectionEnd);

};

HTMLTextAreaElement.prototype.setSelection = function (start, end) {

//change the selection area of the textarea

this.selectionStart = start;

this.selectionEnd = end;

this.focus();

};

var textarea = document.getElementsByTagName('textarea')[0];

textarea.onkeydown = function(event) {

//support tab on textarea

if (event.keyCode == 9) { //tab was pressed

var newCaretPosition;

newCaretPosition = textarea.getCaretPosition() + " ".length;

textarea.value = textarea.value.substring(0, textarea.getCaretPosition()) + " " + textarea.value.substring(textarea.getCaretPosition(), textarea.value.length);

textarea.setCaretPosition(newCaretPosition);

return false;

}

if(event.keyCode == 8){

//backspace

if (textarea.value.substring(textarea.getCaretPosition() - 4, textarea.getCaretPosition()) == " ") {

//it's a tab space

var newCaretPosition;

newCaretPosition = textarea.getCaretPosition() - 3;

textarea.value = textarea.value.substring(0, textarea.getCaretPosition() - 3) + textarea.value.substring(textarea.getCaretPosition(), textarea.value.length);

textarea.setCaretPosition(newCaretPosition);

}

}

if(event.keyCode == 37){ //left arrow

var newCaretPosition;

if (textarea.value.substring(textarea.getCaretPosition() - 4, textarea.getCaretPosition()) == " ") {

//it's a tab space

newCaretPosition = textarea.getCaretPosition() - 3;

textarea.setCaretPosition(newCaretPosition);

}

}

if(event.keyCode == 39){

//right arrow

var newCaretPosition;

if (textarea.value.substring(textarea.getCaretPosition() + 4, textarea.getCaretPosition()) == " ") {

//it's a tab space

newCaretPosition = textarea.getCaretPosition() + 3;

textarea.setCaretPosition(newCaretPosition);

}

}

}

希望本文所述对大家的javascript程序设计有所帮助。