JQuery-热键和Windows提示问题

通过参考http://jshotkeys.googlepages.com/test-static-01.html我尝试实现这个强大的工具,并面临一些问题。

每当我点击Ctrl S时,它会popup一个窗口提示问我是否要保存我的testing.html

我想忽略Windows提示。

我想要的是简单的:1.当人们点击保存button/使用快捷键ctrl s从键盘

  1. 脚本需要做一个Create()检查

  2. 如果为true,则继续提交表单,如果为false,则停止警报请input问题,重点回到txtQuestion,不要做任何进一步的操作。

以下是供参考的完整源代码:enter

<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((event.which == 115 && event.ctrlKey)){alert(“Ctrl + S pressed”); event.preventDefault();}});

  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(); } }); 

您的代码片段是确定的,但为了防止默认浏览器操作(如显示保存对话框),您必须捕获KeyPress事件(而不是KeyDown),当然返回false

 jQuery(document).bind('keypress', 'Ctrl+S',function (evt){ //do job.. return false });