그렇게하는 방법?
나는 시도했다 :
var key = event.which || event.keyCode || event.charCode;
if(key == 8) alert('backspace');
하지만 작동하지 않습니다 …
키 누르기 이벤트에서 동일한 작업을 수행하면 작동하지만 입력 필드에 입력 된 문자를 출력하기 때문에 키 누르기를 사용하고 싶지 않습니다. 나는 그것을 제어 할 수 있어야합니다
내 코드 :
$('#content').bind('input', function(event){
var text = $(this).val(),
key = event.which || event.keyCode || event.charCode;
if(key == 8){
// here I want to ignore backspace and del
}
// here I'm doing my stuff
var new_text = 'bla bla'+text;
$(this).val(new_text);
});
내 입력에 문자를 추가해서는 안됩니다. val ()으로 추가하는 것 외에 실제로 사용자의 입력은 완전히 무시되어야합니다. 키 누르기 동작 만 중요합니다.
답변
으로 .onkeydown
제거를 사용 하고 취소하십시오 return false;
. 이렇게 :
var input = document.getElementById('myInput');
input.onkeydown = function() {
var key = event.keyCode || event.charCode;
if( key == 8 || key == 46 )
return false;
};
또는 jQuery를 사용하여 질문에 jQuery 태그를 추가했기 때문에 :
jQuery(function($) {
var input = $('#myInput');
input.on('keydown', function() {
var key = event.keyCode || event.charCode;
if( key == 8 || key == 46 )
return false;
});
});
답변
jQuery 사용
event.which 속성은 event.keyCode 및 event.charCode을 정상화. 키보드 키 입력을 위해 이벤트를 시청하는 것이 좋습니다.
http://api.jquery.com/event.which/
jQuery('#input').on('keydown', function(e) {
if( e.which == 8 || e.which == 46 ) return false;
});
답변
event.key === “백 스페이스”
더 최근에 더 깔끔하게 : event.key
. 더 이상 임의의 숫자 코드가 없습니다!
input.addEventListener('keydown', function(event) {
const key = event.key; // const {key} = event; ES6+
if (key === "Backspace" || key === "Delete") {
return false;
}
});
답변
‘onkeydown’을 사용해 보셨습니까? 이것은 당신이 찾고있는 이벤트입니다.
입력이 삽입되기 전에 작동하며 문자 입력을 취소 할 수 있습니다.
답변
오래된 질문이지만 키 다운, 키 누름 또는 키업이 아닌 입력시 백 스페이스 이벤트를 포착하려는 경우 이러한 기능 중 하나가 내가 작성한 특정 기능을 중단하고 자동화 된 텍스트 서식 지정으로 어색한 지연을 유발하는 것을 발견했습니다. — inputType을 사용하여 백 스페이스를 잡을 수 있습니다.
document.getElementsByTagName('input')[0].addEventListener('input', function(e) {
if (e.inputType == "deleteContentBackward") {
// your code here
}
});
답변
keydown
와 event.key === "Backspace" or "Delete"
더 최근에 더 깔끔하게 : event.key
. 더 이상 임의의 숫자 코드가 없습니다!
input.addEventListener('keydown', function(event) {
const key = event.key; // const {key} = event; ES6+
if (key === "Backspace" || key === "Delete") {
return false;
}
});
현대적인 스타일 :
input.addEventListener('keydown', ({key}) => {
if (["Backspace", "Delete"].includes(key)) {
return false
}
})
답변
$('div[contenteditable]').keydown(function(e) {
// trap the return key being pressed
if (e.keyCode === 13 || e.keyCode === 8)
{
return false;
}
});
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)