jQuery에서 keypress 이벤트를 강제로 발생시키려면 jQuery.Event() 객체를 생성한 뒤 trigger()로 전달하면 됩니다.
var e = jQuery.Event("keypress", { keyCode: 13 });
$("#btn").trigger(e);
이 방식은 엔터키(Enter, keyCode 13) 가 눌린 것처럼 이벤트를 발생시켜, 해당 요소에 바인딩된 keypress 핸들러를 실행합니다.
다만 몇 가지 주의할 점이 있습니다.
keypress 이벤트는 최신 브라우저에서 점점 사용이 줄어드는 추세입니다.
현재는 keydown 또는 keyup 사용이 권장됩니다.
- 최신 방식에서는
key 또는 which 속성을 함께 사용하는 것이 호환성 면에서 더 안전합니다.
var e = $.Event("keydown", {
key: "Enter",
keyCode: 13,
which: 13
});
$("#btn").trigger(e);
- 이 방법은 실제 키보드 입력을 완전히 대체하는 것은 아니며,
보안상 브라우저 기본 동작(예: 입력창 자동 포커스 이동 등)은 실행되지 않을 수 있습니다.
정리하면,
✔ 이벤트 로직 테스트나 내부 처리용으로는 충분히 사용 가능
❌ 실제 사용자 입력을 완전히 흉내 내는 용도로는 한계가 있습니다.