>웹 프론트엔드 >CSS 튜토리얼 >양식을 제출하는 대신 텍스트 영역에 새 줄을 삽입하기 위해 'Shift Enter'를 어떻게 감지할 수 있습니까?

양식을 제출하는 대신 텍스트 영역에 새 줄을 삽입하기 위해 'Shift Enter'를 어떻게 감지할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-30 09:25:13388검색

How Can I Detect

"Shift Enter" 감지 및 텍스트 영역에 새 줄 삽입

기본적으로 텍스트 영역 내에서 "Enter" 키를 누르면 양식이 제출됩니다. 그러나 이 기능을 유지하면서 사용자가 "Shift", "Enter" 키 조합을 눌러 새 줄을 만들 수 있도록 허용하고 싶습니다. JavaScript에서 이를 수행하는 방법은 다음과 같습니다.

"Enter"를 눌러 양식을 제출하는 스크립트를 제어하는 ​​경우 "Shift" 키가 눌러지지 않았는지 확인하도록 코드를 수정하기만 하면 됩니다. 예를 들어,

if (evt.keyCode == 13) {
    form.submit();
}

...을 다음과 같이 변경하세요.

if (evt.keyCode == 13 && !evt.shiftKey) {
    form.submit();
}

그러나 원본 코드에 액세스할 수 없는 경우 다음 스크립트를 사용할 수 있습니다. 커서가 텍스트 끝에 있지 않은 경우에도 원하는 동작을 얻으려면:

function handleEnter(evt) {
    if (evt.keyCode == 13 && evt.shiftKey) {
        if (evt.type == "keypress") {
            pasteIntoInput(this, "\n");
        }
        evt.preventDefault();
    }
}

// Handle both keydown and keypress for Opera as it suppresses default key action in keypress
$("#your_textarea_id").keydown(handleEnter).keypress(handleEnter);

이 스크립트는 "Shift"를 확인합니다. "Enter" 키 조합. 감지되면 PasteIntoInput 함수를 사용하여 텍스트 영역에 개행 문자("n")를 삽입하고 기본 양식 제출을 방지합니다.

위 내용은 양식을 제출하는 대신 텍스트 영역에 새 줄을 삽입하기 위해 'Shift Enter'를 어떻게 감지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.