我不想模拟按退格键的效果。我希望文本字段删除字符,而无需手动操作textarea的内容。
这是一个样本。 的标记
<textarea id="tex">sdfedasdgasg</textarea>
JS
$(document).keydown(function(e) {
var eventObj = document.createEventObject ? document.createEventObject() : document.createEvent("Events");
if (eventObj.initEvent) {
eventObj.initEvent("keydown", true, true);
}
eventObj.keyCode = 8;
eventObj.which = 8;
if (e.which === 32) {
$('textarea').focus();
var textField = document.getElementById('tex');
textField.dispatchEvent ? textField.dispatchEvent(eventObj) : textField.fireEvent("onkeydown", eventObj);
}
if (e.which === 8) {
console.log('bk');
}
});
这会检测到该事件,但数据未获得更新。我做错了什么?
答案 0 :(得分:0)
我把解决方案放在这里
https://jsfiddle.net/r6swvvew/
HTML
Spacebar is the new backspace
<BR>
<textarea id="sample"></textarea>
JQuery的
$("#sample").keypress(function(e){
if(e.keyCode == '32')
{
e.preventDefault();
var len = $(this).val().length;
var newval = $(this).val().substring(0, parseInt(len) - 1);
$(this).val( newval );
}
});