Development Tip

_some 필드에서만 Enter 키를 통한 양식 제출 비활성화

yourdevel 2020. 10. 26. 21:23
반응형

_some 필드에서만 Enter 키를 통한 양식 제출 비활성화


사용자가 익숙하기 때문에 기존의 'Enter 키를 누르면 양식 제출'동작을 유지하고 싶습니다. 그러나 반사에 의해 그들은 텍스트 입력 상자로 끝낼 때 종종 Enter 키를 누르지 만 실제로 완전한 양식으로 완료되기 전에.

특정 클래스의 입력에 초점이 맞춰질 때만 Enter 키를 가로 채고 싶습니다.

관련 질문 찾기 이것은 내가 찾고있는 것 같습니다.

if (document.addEventListener) {
    document.getElementById('strip').addEventListener('keypress',HandleKeyPress,false);
} else {
    document.getElementById('strip').onkeypress = HandleKeyPress;
}

하지만 그 if (document.addEventListener) {부분은 나에게 생소합니다.


다음 keypress과 같이 해당 필드 에서 입력 캡처하고 취소 할 수 있습니다 .

$('.noEnterSubmit').keypress(function(e){
    if ( e.which == 13 ) return false;
    //or...
    if ( e.which == 13 ) e.preventDefault();
});

그런 다음 귀하의 입력에 대해 class="noEnterSubmit":)

다른 사람들이 나중에 이것을 발견 할 경우를 대비하여 jQuery 1.4.3 (아직 출시 되지 않음)에서 다음과 같이 줄일 수 있습니다.

$('.noEnterSubmit').bind('keypress', false);

<Head>HTML 코드의 태그에 다음 코드를 추가하기 만하면 됩니다. 양식의 모든 필드에 대해 Enter 키로 양식 제출

<script type="text/javascript">
    function stopEnterKey(evt) {
        var evt = (evt) ? evt : ((event) ? event : null);
        var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if ((evt.keyCode == 13) && (node.type == "text")) { return false; }
    }
    document.onkeypress = stopEnterKey;
</script>

 <input type="text"  onkeydown="return (event.keyCode!=13);" />

특정 클래스에서만 입력을 허용하려면 (이 예에서는 'enterSubmit') :

jQuery(document).ready(function(){
    jQuery('input').keypress(function(event){
        var enterOkClass =  jQuery(this).attr('class');
        if (event.which == 13 && enterOkClass != 'enterSubmit') {
            event.preventDefault();
            return false;   
        }
    });
});

참고 URL : https://stackoverflow.com/questions/2794017/disable-form-submission-via-enter-key-on-only-some-fields

반응형