說我有這樣的:如何在文本字段上觸發退格鍵?
<textarea id="myarea">Hello</textarea>
我怎麼會觸發對textarea的退格可能使用觸發器()和鍵碼。退格鍵的代碼是8 我不是在尋找這樣的:
$('#myarea').val($("myarea").val().slice(0,-1));
我需要模擬居然有人按下了鍵盤上的「退格」鍵。 感謝
說我有這樣的:如何在文本字段上觸發退格鍵?
<textarea id="myarea">Hello</textarea>
我怎麼會觸發對textarea的退格可能使用觸發器()和鍵碼。退格鍵的代碼是8 我不是在尋找這樣的:
$('#myarea').val($("myarea").val().slice(0,-1));
我需要模擬居然有人按下了鍵盤上的「退格」鍵。 感謝
您可以創建一個keydown事件:
var e = jQuery.Event("keydown", { keyCode: 20 });
然後在您的textarea的觸發它:
$("#myarea").trigger(e);
更新:
做一些更多的研究和測試後,我意識到此解決方案確實不是模擬自然 HTML元素上的按鍵事件。此方法僅觸發keydown事件,它不會複製進入元素並按下該鍵的用戶。
爲了模擬用戶進入該文本框,按下該鍵,你就必須創建一個dispatch event
dispatch事件也沒有在全球範圍的支持。您最好的選擇是觸發keydown事件,然後按預期更新文本區域。
我發現這一點:
http://forum.jquery.com/topic/simulating-keypress-events(答案2號)。
像這樣的事情應該工作,或至少給你一個想法:
<div id="hola"></div>
$(function(){
var press = jQuery.Event("keyup");
press.ctrlKey = false;
press.which = 40;
$('#hola').keyup(function(e){
alert(e.which);
})
.trigger(press); // Trigger the event
});
您不應逼着關鍵事件JS。嘗試模擬字符刪除。
const start = textarea.selectionStart - 1;
const value = textarea.value;
const newValue = value.substr(0, start) + a.substr(start);
textarea.value = newValue;
或者,如果您只是想要事件,而是直接調用處理程序,而不是強制事件。這太hacky了。
你的意思是說,當他試圖鍵入它刪除或當他點擊一個重置按鈕或某些東西的文字刪除後退方式? – Warface