如何在输入中按下enter时阻止WebKit浏览器提交表单

Pie*_*yle 0 html safari webkit google-chrome submit

当使用具有许多文本输入的表单时,当在任何输入元素中按下"输入"时,WebKit/Safari/Google Chrome会提交表单.即使没有提交输入元素也没有注册onclick处理程序.

例如,请参阅此示例代码:

<html>
    <body>
        <form method="POST" action=".">
            <ul>
                <li><input type="text" name="foo" value="<?=rand()?>"/></li>
                <li><input type="text" name="bar" value="<?=$_POST['foo']?>"/></li>
            </ul>
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

当在两个文本输入元素中的任何一个中按Enter键时,将提交表单.

由于我使用异步HTTP请求在JavaScript中处理我的表单,因此我需要阻止此行为.我可以为keypressed事件注册一个自定义处理程序来阻止默认stopPropagation.但它看起来很丑陋,并且在动态添加新的文本输入元素时并不实用.

Dan*_*ite 5

onsubmit在表格上收听活动并返回false.