> 웹 프론트엔드 > 프런트엔드 Q&A > 자바스크립트 Enter를 누르세요. 제출하지 마세요.

자바스크립트 Enter를 누르세요. 제출하지 마세요.

WBOY
풀어 주다: 2023-05-09 11:12:37
원래의
968명이 탐색했습니다.

웹 개발에서 JavaScript는 필수적인 프로그래밍 언어입니다. 대부분의 경우 특정 대화형 효과를 얻으려면 Enter 키와 같은 일부 사용자 작업을 캡처해야 합니다. 그러나 때로는 Enter 키의 기본 양식 제출 동작이 발생하는 것을 원하지 않습니다. 이 경우 어떻게 해야 합니까? 이 글에서는 JavaScript를 통해 Enter 키의 기본 제출 이벤트를 방지하는 방법을 소개합니다.

Enter 키의 기본 동작

대부분의 웹 양식에서는 사용자가 한 줄짜리 텍스트 상자에서 Enter 키를 누르면 양식이 자동으로 제출됩니다. 이는 브라우저와 함께 제공되는 기본 동작이며 간단한 검색 상자와 같은 일부 대화형 효과에는 적합하지 않을 수 있습니다. 사용자가 검색 상자에 키워드를 입력하고 Enter 키를 누를 때 기본 제출 동작이 방지되지 않으면 브라우저가 자동으로 페이지를 새로 고치고 사용자가 입력한 키워드는 손실됩니다.

Enter 키의 기본 제출 이벤트 방지

Enter 키의 기본 제출 이벤트를 방지하려면 JavaScript에서 event.preventDefault() 메서드를 사용할 수 있습니다. 이 메소드는 양식의 기본 제출 이벤트를 방지하는 등 요소의 기본 동작을 방지할 수 있습니다.

다음 HTML 코드가 있다고 가정합니다.

<form>
  <input type="text" id="search-input">
</form>
로그인 후 복사

다음 JavaScript 코드를 통해 Enter 키의 기본 양식 제출 이벤트를 방지할 수 있습니다.

const searchInput = document.querySelector('#search-input');
searchInput.addEventListener('keydown', (event) => {
  if (event.keyCode === 13) {
    event.preventDefault();
    console.log('阻止回车键默认提交事件');
  }
});
로그인 후 복사

위 코드에서 입력 상자에 대한 keydown 이벤트 리스너를 추가했습니다. 이 이벤트는 사용자가 키보드를 누를 때 시작됩니다. 이벤트 핸들러에서는 사용자가 Enter 키를 눌렀는지 확인하고, 그렇다면 event.preventDefault()를 호출하여 양식의 기본 제출 이벤트를 방지합니다. 동시에 코드가 유효한지 확인할 수 있도록 콘솔에 메시지를 출력합니다.

양식의 기본 제출 이벤트를 방지하는 것 외에도 event.preventDefault() 메서드 다음에 자체 JavaScript 코드를 실행하여 특정 대화형 효과를 얻을 수도 있습니다.

기타 참고 사항

Enter 키가 이벤트를 제출하지 못하도록 구현할 때 다음 사항에 주의해야 합니다.

  1. event.preventDefault() 메서드는 이벤트 핸들러 내부의 기본 동작에만 유효합니다. 이벤트 핸들러 외부에서 이 메소드를 호출해도 아무런 효과가 없습니다.
  2. keydown 이벤트에서는 event.keyCode를 사용하여 사용자가 누른 키 코드를 가져올 수 있습니다. Enter 키의 키 코드는 13입니다.
  3. 양식을 정상적으로 제출하면서 검색창에서 Enter 키의 논리를 처리해야 하는 경우와 같이 이벤트 버블링을 통해 이 문제를 해결할 수 있습니다. 검색 상자의 keydown 이벤트 핸들러에서 기본 동작을 방지하지 않으면 이벤트가 양식 요소까지 버블링되어 양식의 기본 제출 이벤트가 트리거됩니다. 따라서 양식 요소에 제출 이벤트 리스너를 추가하고 양식이 제출될 때 자체 코드를 실행할 수 있습니다.
const form = document.querySelector('form');
form.addEventListener('submit', (event) => {
  event.preventDefault();
  console.log('表单被提交!');
})
로그인 후 복사

결론

JavaScript는 기본적으로 Enter 키가 이벤트를 제출하는 것을 쉽게 방지하여 보다 자유로운 상호 작용 효과를 얻을 수 있습니다. event.preventDefault() 메서드를 통해 양식의 기본 동작을 방지하여 필요한 대화형 효과를 얻을 수 있습니다. 동시에 예상치 못한 오류를 방지하기 위해 이벤트 핸들러의 기본 동작을 방지하는 시기와 방법에 대해서도 주의해야 합니다.

위 내용은 자바스크립트 Enter를 누르세요. 제출하지 마세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿