Tag: double submit problem

表单在keyup上使用submit()提交两次

我有一个与此类似的jQuery / HTML代码: $(function() { $(‘#my-textbox’).keyup(function(e) { var $textbox = $(this); if ($textbox.val().length > 0 && e.keyCode == 13) { $textbox.parent(‘form’).submit(); } }); }); 目的是在用户按下“Enter”键时自动提交表单。 我经常使用Firefox,所以在我使用谷歌浏览器和Internet Explorer进行测试之前,一切都很好。 当我在后面的浏览器中按Enter键时,有时我会将表单提交两次。 这很容易被注意到,因为我会在我的数据库中获得重复的条目,并且我会看到两个使用Fiddler的POST 。 经过一些测试,我发现我的问题是jQuery代码,因为文本框会在没有它的情况下自动提交,并且使用此代码会在某些浏览器中产生第二个POST 。 我的问题是: 为什么浏览器不能巧妙地阻止第二个表单发布(就像Firefox在我的测试中所做的那样)? 我是否应该在所有平台的所有主流浏览器中都期望这种行为 有没有办法改进这个代码所以我使用JavaScript执行提交,但是没有提交两次提交的表单?