关于enter 自动提交的解决方法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 关于enter 自动提交的解决方法

关于enter 自动提交的解决方法

 2016/9/2 5:36:24  linshihao  程序员俱乐部  我要评论(0)
  • 摘要:document.onkeydown=function(e){vare=e||event;if(e.keyCode==13){setTimeout(function(){varkeyWord=$('#keyWord').val();alert(keyWord);setHistory(keyWord);},0);}}因为form表单是默认按enter键会自动提交的,如果我们需要在提交之前执行我们的逻辑就需要用到这段代码了如果不需要提交就这样document.onkeydown=function
  • 标签:方法 解决方法 解决
class="java">document.onkeydown = function(e) {
                var e = e || event;
                if(e.keyCode == 13) {
                    setTimeout(function(){
                        var keyWord = $('#keyWord').val();
                        alert(keyWord);
                        setHistory(keyWord);
                    },0);
                }
            }



因为form表单是默认按enter 键会自动提交的,如果我们需要在提交之前执行我们的逻辑就需要用到这段代码了

如果不需要提交就这样

document.onkeydown = function(e) {
    var e = e || event;
    if(e.keyCode == 13) {
    setTimeout(function(){
            alert("自己的逻辑");
        },0);
        e.preventDefault ? e.preventDefault() : (e.returnValue = false);
    }
}


问题解决到这里,得总结一下

一 ie下与firefox,chrome在处理onkeydown与onbsubmit机制不一样, ie是同步的,而firefox,chrome是异步的,通过一个阻塞的alert(1)就可以说明这个问题。

二 当想改变一个函数执行顺序时,包括一些浏览器自身的默认顺序时,可以通过setTimeout来改变函数在本来堆栈的顺序。
发表评论
用户名: 匿名