如何使用javascript通过快捷方式单击按钮而不导致页面重新加载

如何使用javascript通过快捷方式单击按钮而不导致页面重新加载,javascript,jquery,button,keyboard-shortcuts,page-refresh,Javascript,Jquery,Button,Keyboard Shortcuts,Page Refresh,我需要在我的web应用程序中使用一些快捷方式,这些快捷方式与用户单击按钮或使用accesskey按下按钮时的快捷方式相同 我简化了代码以向您展示我的问题: <html> <head><script src="jquery-1.4.2.js" type="text/javascript"></script></head> <form> <body> <div id="myDiv">

我需要在我的web应用程序中使用一些快捷方式,这些快捷方式与用户单击按钮或使用accesskey按下按钮时的快捷方式相同

我简化了代码以向您展示我的问题:

<html>
<head><script src="jquery-1.4.2.js" type="text/javascript"></script></head>
<form>
    <body>
        <div id="myDiv">text</div>
        <input name="cmdChangeText" type="submit" value="change text" onclick="document.getElementById('myDiv').innerText='text is changed'; return false;" />

        <input name="cmdTestButton" type="submit" value="hello" onclick="alert('hello'); return false;" accesskey='z' />
    </body>
</form>
<script type="text/javascript">
    document.onkeydown = function() {
        if (event.keyCode == 83) { //83 = 's'
            window.$('[accesskey=z]').click();
        }
    }
</script>
</html>

文本
document.onkeydown=函数(){
如果(event.keyCode==83){//83='s'
窗口。$('[accesskey=z]')。单击();
}
}
第一个按钮更改文本。 当您单击第二个按钮,或通过accesskey(IE中的Alt+Z)单击它时,您会收到警报,但页面不会重新加载:文本仍在更改


当我按下一些按钮时,在这个例子中的S,我确实得到了警告,但是页面被重新加载!为什么
返回为false
以这种方式被忽略,我能做些什么呢?

我会去掉
onclick=“alert('hello');返回false”
内容并使用jQuery附加事件

之后,您可以尝试取消冒泡事件:

$('myInput2')。单击(
函数(){
警报(“你好”)
返回错误
}
)

只是一种预感。

给按钮起不同的名字,在这个例子中,我使用了“test1”和“test2”,并添加了以下代码

$('input[name=test1]').click( function(e){
    e.preventDefault();
    $('#myDiv').innerText('text is changed');
});

$('input[name=test2]').click( function(e){
    e.preventDefault();
    alert('hello');
});

默认情况下,“提交”类型的输入将提交页面。对事件使用“preventDefault()”方法将阻止默认操作,这并不奇怪。如果你想重新加载页面,只需删除这一行。

我无法用IE8和Chrome重现这个问题。你在用什么浏览器?你确定吗?首先更改文本,然后按“s”,文本不应再次更改。我在IE8中测试了代码。不要忘记jquery文件!我也不能复制这个。return false似乎正在发挥作用。onclick=“alert('hello');return false”-您错过了“;”在结尾处的“return false”之后,我确实忘记了“;”返回后为false,但问题仍然存在。艺术和烘焙的解决方案两者都有效!谢谢你。你的解决方案和烘焙的解决方案都有效。我在ASP.NET中有一个按钮,在“OnClientClick”中发生了很多javascript事件,因此我需要将该代码更改为jquery事件,如您在这里所示。在我点击按钮时不再出现“返回错误”。。谢谢