2016-12-23 8 views
0

기본 입력란이 있습니다. 페이지로드가 끝나면 입력 필드에 자동으로 초점을 맞추고 값을 설정하고 마지막으로 사용자가 이러한 이벤트를 트리거하지 않고 '입력'키 누르기를 트리거하려고합니다.jQuery/vanilla JavaScript를 사용하여 사용자 상호 작용없이 이벤트를 트리거하는 방법은 무엇입니까?

아래 코드에서 첫 번째 두 단계는 정상적으로 작동하지만 Enter 키는 트리거되지 않습니다 (트리거되었을 때 알림 메시지가 나타납니다). 이것이 달성 될 수있는 방법에 대해 누구나 통찰력을 제공 할 수 있습니까?

$(document).ready(function() { 
    $("#myInput").focus(); 
    var e = jQuery.Event("keydown"); 
    e.which = 13; 
    $("#myInput").val("test"); 
    $("#myInput").trigger(e); 
}); 
+0

[jQuery를 -를 keyDown/누르기/keyup이라는 ENTERKEY 검출부 (http://stackoverflow.com/questions/3462995/jquery-keydown-keypress-keyup-enterkey-detection) –

+0

이 솔루션은 사용자가 트리거 한 이벤트를 나타내며 페이지가로드 될 때이 이벤트를 자동화하고 싶습니다. –

+0

최종 결과는 무엇입니까? 코드가 잘 작동하기 때문에 양식을 제출 하시겠습니까, 아니면 무엇을 제출 하시겠습니까? – 31piy

답변

0

keyCode을 추가하면 문제가 해결 될 수도 있습니다.

$(document).ready(function() { 
     $("#myInput").focus(); 
     var e = jQuery.Event("keypress"); 
     e.which = 13; 
     e.keyCode = 13; 
     $("#myInput").val("test"); 
     $("#myInput").trigger(e); 
}); 
+0

답장을 보내 주셔서 감사합니다.이 답변은 제가 찾고있는 것이 아닙니다. 사용자가 키 누르기를 트리거하지 않고 자동으로 키 누르기 실행을 원합니다. –

+0

@ Kode_12 답변을 업데이트했습니다. keyCode를 추가하십시오. – ScanQR

+0

나는 그것을 또한 시도했다. 여전히 Enter 키를 트리거하지 않습니다. (셀렌을 도입하지 않고도 이벤트를 자동화 할 수 있습니까? –

0

나는이 방법을 시도해 보았습니다. 어쩌면 keydown 이벤트 핸들러와 호출 위치를 확인해야합니다. 트리거 기능을 수행 한 후 하단의 keydown 이벤트 핸들러를 움직이면 작동하지 않습니다.

$(document).ready(function() { 
 

 
      var e = jQuery.Event('keydown', { 
 
       which: 50 
 
      }); 
 
      
 
      $('input').keydown(function() { 
 
       alert("triggered!"); 
 
      }); 
 

 
      $('input').trigger(e); 
 

 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<input type="button" value="button">