jQuery 焦点似乎导致 Internet Explorer 9 执行两次。这个问题在旧版本的 IE 中不会发生,在 Firefox 或 Chrome 中也不会发生。
我让用户在输入字段中输入代码。在输入或提交时,代码通过负载发送到另一个脚本(ajax)。输入字段中的代码被删除,焦点被带回。
该脚本的结果被插入到同一页面上的一个 div 中。
    $(document).ready(function(){
        $('#code').keyup(function(e){
            if(e.keyCode == 13){
                console.log('Code submitted through enter');
                sendcode($('#code').val());
            }
        });
        function sendcode(b){
            console.log('function sendcode used');
            $('#Result').load('scan.php?code=' + b);
            $('#code').val('');
            $('#code').focus();
        };
        $('#Submit').click(function(){
            console.log('Code submitted through click');
            sendcode($('#code').val());
        });
    });
但是, focus() 似乎是问题所在,因为当我删除它时,问题就消失了。我尝试将 focus() 放在代码的任何位置,但没有成功。是否有任何替代 focus() 的方法可以实现相同的效果,或者可以以某种方式修复?
NETWORK:
URL: /scan.php?code=stackoverflow
URL: /scan.php?code=
CONSOLE: (when hit enter)
Log: Code submitted through click 
Log: function sendcode used 
Log: Code submitted through enter 
Log: function sendcode used 
您可以看到第二个负载也没有携带代码变量。