簡體   English   中英

JavaScript退格功能

[英]Javascript backspace functionality

我需要實現退格鍵的行為,以便將光標放置在左側,而無需用戶按下退格鍵,但是在以編程方式將字符串添加到我的(內容可編輯)div中之后,我需要使光標自動移動位置左。 我嘗試將\\ b添加到我的字符串中,但沒有成功。 如何實現此行為(最好使用Javascript)?

謝謝!

您可以通過將瀏覽器事件注入可編輯的內容中來輕松解決此問題。 我正在顯示一個使用左箭頭鍵的示例,因為您寫道要移動光標,而我希望這是您想要的,因為Backspace會刪除一個字符。 如果要刪除,則將左的鍵碼替換為退格鍵。

這是使用jQuery完成的方式:

var ev = jQuery.Event("keydown"); // Creates a new keydown event
ev.keyCode = $.ui.keyCode.LEFT; // Sets the event keyCode to be the left arrow button
$('#contentEditableContainer').trigger(ev);

包括jQuery:

<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
</head>

這是我使用的功能,請確保您包含jQuery。 只需使用ID將此函數調用到您要讓退格鍵起作用的文本框即可:

function backSpace(id){
var txt = $(id);
var startPos = txt[0].selectionStart;
var endPos = txt[0].selectionEnd;
var scrollPos = txt[0].scrollTop;
console.log("start: " + startPos + " end: " + endPos + " scrollPos: " + scrollPos);
if (endPos - startPos > 0){
    txt.val(txt.val().slice(0, startPos) + txt.val().slice(endPos, 100));
}else if (endPos > 0){
    txt.val(txt.val().slice(0, startPos-1) + txt.val().slice(startPos, 100));
}else{
    startPos = txt.val().length+1;
}
txt.focus();
txt[0].setSelectionRange(startPos-1,startPos-1);
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM