>  기사  >  웹 프론트엔드  >  HTML表单中如何输完一行按回车跳到下一行_html/css_WEB-ITnose

HTML表单中如何输完一行按回车跳到下一行_html/css_WEB-ITnose

WBOY
WBOY원래의
2016-06-24 12:15:593192검색

我在网上搜到的办法是
这样在IE中的确可以,但是在谷歌和火狐浏览器中都不管用,输完一行后,点击回车后就直接提交了。怎么弄呢?感谢!


回复讨论(解决方案)

应该需要JS单独写吧

具体怎么弄呢

onkeydown事件和obj.focus();

亲自试验结果

onkeydown="if(event.keyCode==13){event.keyCode=9;  alert(event.keyCode);}" 

IE输出9
火狐输出13,根本没变。。

什么原理。。有待请教。。查了N多资料都没弄明白。

至于怎么实现你的问题:
楼上也说了,onkeydown事件和obj.focus();

1.在form的onkeydown事件里判断回车键时屏蔽onsubmit事件,
2.在input元素的onkeydown中光标指向下一个input元素(由于类似event.keyCode=9这种,用代码实现tab操作的方法。。你也看到了,兼容性不强。。)

用一个函数

function x() {
    var e = arguments[0] || window.event;
    if(e.keyCode==13)e.keyCode=9;
}

然后html这样写


<script> <br /> function handleEnter (field, event) { <br /> var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; <br /> if (keyCode == 13) { <br /> var i; <br /> for (i = 0; i < field.form.elements.length; i++) <br /> if (field == field.form.elements[i]) <br /> break; <br /> i = (i + 1) % field.form.elements.length; <br /> field.form.elements[i].focus(); <br /> return false; <br /> } <br /> else <br /> return true; <br /> } <br /> <br /> </script>








document.getElementById("inputId").onkeydown = function(e) {
    var e = e || window.e
    if(event.keyCode==13)event.keyCode=9 "
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.