문제

참조로 http://jshotkeys.googlepages.com/test-centatic-01.html나는이 강력한 도구를 구현하고 몇 가지 문제에 직면하려고 노력합니다.

ctrl s를 클릭 할 때마다 testing.html을 저장할 것인지 묻는 창 프롬프트가 팝업됩니다.

Windows 프롬프트를 무시하고 싶습니다.

내가 원하는 것은 간단합니다 : 1. 사람들이 저장 버튼을 클릭하면 키보드에서 단축키 키 Ctrl s를 클릭합니다.

  1. 스크립트는 create () 점검을 수행해야합니다

  2. 사실이라면 계속 양식을 제출하십시오. False 인 경우 ALERT를 중지하십시오.

아래는 참조를위한 전체 소스 코드입니다.

<html>
<head>
    <style>
        * {font-family: Helvetica, Verdana, Arial; font-size:0.95em}
        .eventNotifier{width: 100px; float: left; color:navy; 
              border: dotted 1px navy; padding: 4px; background-color:white; 
              margin:3px}
        .dirty{border: solid 1px #0ca2ff; color:white; 
               background-color:#0ca2ff}
    </style>

    <script src="jquery-1.3.2.min.js"></script>
    <script src="jquery.hotkeys-0.7.9.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {

// 이상한- 경고 ctrl+s가 두 번 나타나는 것을 발견했습니다 .. ??? $ (window) .keypress (function (event) {if ((이벤트.

            jQuery(document).bind('keydown', 'Ctrl+s',
                   function(evt){ Create(); return false; });
            //jQuery(document).bind('keydown', 'Ctrl+s',
                  //function (evt){jQuery('#_Ctrl_s'); return false; });
        });

        function Create()
        {
            var f = document.frm

            if (f.txtQuestion.value.length == 0)
            {
                alert('Please enter Question.')
                f.txtQuestion.focus()
                return false
            }
            f.submit()
        }

    </script>
</head>
<body> 
    <form name="frm" method=post action="" >
      <div id="_Ctrl_s" class="eventNotifier">Ctrl+s</div>
      <input type=text name="txtQuestion" maxlength="255" 
                class="field400" value="">
      <input type=button value="Save" name="BtnSave" onclick="Create()" 
                class=text100>
    </form>
</body>
</html>

여기에 코드

도움이 되었습니까?

해결책

브라우저 저장을 대화 상자로 표시하지 않으려면 기본 이벤트 조치 (일반 jQuery의 예제)를 방지해야합니다.

$(window).keypress(function(event) {
  if ((event.which == 115 && event.ctrlKey)){
      alert("Ctrl+S pressed");
      event.preventDefault();
  }
});

다른 팁

코드 스 니펫은 괜찮지 만 기본 브라우저 동작을 방지하려면 (저장 대화 상자 표시) 키 누름 이벤트 (키 다운 아님) 및 물론 거짓을 반환합니다.

jQuery(document).bind('keypress', 'Ctrl+S',function (evt){ 
 //do job..
 return false
});
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top