关闭警告框后URL中的问号

The*_*ner 6 html javascript twitter-bootstrap

我有一个虚拟Bootstrap模式,带有一个非常简单的JS警报,意味着在单击提交按钮时触发.代码在这里生效,这就是它的样子:

<div class="modal fade" id="contact" role="dialog" >
<div class="modal-dialog">
    <div class="modal-content">
        <form class="form-horizontal" role="form" name="contact-form">
            <div class="modal-header">
                <h4>test</h4>
            </div>
            <div class="modal-body"><p>This is body</p></div>
            <div class="modal-footer">
                <button type="submit" id="submit" class="btn btn-primary btn-lg" onclick="alert('something');">Send</button>
            </div>
        </form>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如果您访问该站点,可以通过单击顶部导航菜单中的联系链接来触发模式.模态看起来像这样:

在此输入图像描述

如您所见,只有一个字段和一个提交按钮.按钮的onclick()事件设置为警告屏幕上的"某事".这种方法很好,但是当您关闭警报时,页面会刷新"?" 附加到URL.如何防止此刷新以及问号来自何处?

ris*_*hat 4

起初我认为发生这种情况是因为按钮的属性type设置为submit,所以我建议完全删除此属性,并且尾随问号可能不会再出现。但确实如此。

真正需要做的是必须防止事件默认操作。为此,请false在事件回调函数中立即返回onclick

<button onclick="alert('something'); return false;">...</button>
Run Code Online (Sandbox Code Playgroud)

这样,您就可以返回 false,这会被认为是您想要阻止进一步执行单击事件,从而有效地提交操作。