2011-08-03 20 views
13

說我有這樣的:如何在文本字段上觸發退格鍵?

<textarea id="myarea">Hello</textarea> 

我怎麼會觸發對textarea的退格可能使用觸發器()和鍵碼。退格鍵的代碼是8 我不是在尋找這樣的:

$('#myarea').val($("myarea").val().slice(0,-1)); 

我需要模擬居然有人按下了鍵盤上的「退格」鍵。 感謝

+0

你的意思是說,當他試圖鍵入它刪除或當他點擊一個重置按鈕或某些東西的文字刪除後退方式? – Warface

回答

8

您可以創建一個keydown事件:

var e = jQuery.Event("keydown", { keyCode: 20 }); 

然後在您的textarea的觸發它:

$("#myarea").trigger(e); 

更新:

做一些更多的研究和測試後,我意識到此解決方案確實不是模擬自然 HTML元素上的按鍵事件。此方法僅觸發keydown事件,它不會複製進入元素並按下該鍵的用戶。

爲了模擬用戶進入該文本框,按下該鍵,你就必須創建一個dispatch event

dispatch事件也沒有在全球範圍的支持。您最好的選擇是觸發keydown事件,然後按預期更新文本區域。

+0

這裏做錯了什麼http://jsfiddle.net/qtPcF/34/? – odle

+0

你沒有做錯什麼。閱讀更新後的帖子以獲取更多信息 – rkw

0

不應逼着關鍵事件JS。嘗試模擬字符刪除。

const start = textarea.selectionStart - 1; 
const value = textarea.value; 
const newValue = value.substr(0, start) + a.substr(start); 
textarea.value = newValue; 

或者,如果您只是想要事件,而是直接調用處理程序,而不是強制事件。這太hacky了。

相關問題