?
<input type="text" id="version" onkeydown="checkKeyCode(event)"> <input type="button" id="openButton" onclick="myfun()" value="openButton"/> <div style="display: none;"> <form id="testForm" action="ieCheck.jsp" method="get" target="_bland"> //注意这里是_blank,也就是打开新页面 </form> </div>
?
? ? 针对上面的HTML,也就是text和button都不在form中,此时对应的js:
?
function checkKeyCode(e){ e = e || event; if(e.keyCode==13){ $("#testForm").submit(); } } function myfun(){ $("#testForm").submit(); }
?
?当在text中按下回车键的时候,$("#testForm").submit()提交表单,此时打开新页面会被IE拦截(监听的是onkeydown事件,onclick事件有所不同)
?
?当点击button的时候, $("#testForm").submit();提交表单,此时打开新页面不会被IE拦截
?
然后将text和button放到form中:
?
?
<div style="display: none;"> <form id="testForm" action="ieCheck.jsp" method="get" target="_bland"> <input type="text" id="version" onkeydown="checkKeyCode(event)"> <input type="button" id="openButton" onclick="myfun()" value="openButton"/> </form> </div>
?
?
如上,此时text和button都是form中的元素
?
?当在text中按下回车键的时候,$("#testForm").submit()提交表单,此时打开新页面,IE会弹出拦截提示框,但有时候能打开,有时候打不开新页面(监听的是onkeydown事件,onclick事件有所不同)
?
?当点击button的时候,?$("#testForm").submit();提交表单,此时打开新页面不会被IE拦截
?
所以比较坑爹,用button提交的话,不会被拦截,用text监听回车事件提交的话,可能会被拦截。。。尼玛