IE11中的jQuery提交按钮accesskey问题

时间:2015-01-13 14:58:27

标签: javascript jquery html

jQuery中存在一个问题,当使用accesskey时,会导致通过文档绑定的事件处理程序无法触发。
问题的代码示例:

<html>
<head>
    <title></title>
    <script src="//code.jquery.com/jquery-2.1.3.min.js"></script>
    <script>
        $(document).ready(function () {
            $(document).on("click", "#btnOK", save1);
            $("#btnOK").on("click", save2);
            document.getElementById("btnOK").addEventListener("click", save3);
            $(document).on("click", save4);    
        });
        $(document).on('submit', function () {alert("Submitting the page"); });

        function save1() {
            alert('1');
            //return false;
        }
        function save2() {
            alert('2');
           // return false;
        }
        function save3() {
            alert('3');
            //return false;
        }
        function save4(e) {
        console.log(this, e)
        if (e.target.id === "btnOK")
            alert(4);
        //return false;
        }
    </script>
</head>
<body>
    <form>
        <button id="btnOK" name="btnOK" accesskey="S" ><u>S</u>ave</button>&nbsp;
    </form>
</body>

正如您所设想的,当我们在IE11中单击一个按钮(使用鼠标按钮)时,我们得到消息序列:“2”,“3”,“1”,“4”,“提交页面”。然后,如果我们使用accesskeys“单击”按钮,页面显示相同的行为将是合理的。 但你错了。
我们得到的只是“2”,“3”,“4”,“提交页面”。 尽管事实上,“click”事件完全相同(除了按钮和按钮属性,但这没关系),我们用

注册click事件
$(document).on("click", save4);

但不是

$(document).on("click", "#btnOK", save1);

有人知道,如何解决?不使用IE11 不是选项

0 个答案:

没有答案
相关问题