code

_일부 필드에만 Enter 키를 사용하여 양식 제출을 사용하지 않도록 설정합니다.

starcafe 2023. 10. 30. 21:09
반응형

_일부 필드에만 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);
 <input type="text"  onkeydown="return (event.keyCode!=13);" />

다음 코드만 추가하면 됩니다.<Head>HTML 코드를 입력합니다.양식의 모든 필드에 대해 키 입력 시 양식 제출

<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>

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

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

반응형