如何使用回车键阻止多个表单提交?

时间:2013-05-17 13:16:35

标签: php javascript jquery html forms

我使用PHP和javascript构建了一个琐事游戏。由于每个问题都有时间限制,我没有提供提交按钮;相反,用户可以通过按Enter键直接提交答案。按下回车键后,用户被重定向到另一个URL,检查发布的答案是否正确,如果答案正确则添加10个点,然后用用户的点更新数据库,然后将用户重定向到琐事页面他们有另一个问题要回答。但是,当用户输入正确答案并多次按下回车键而不让页面重新加载时,脚本会认为他们的回答是有效的,并且在回答提交时随时添加他们的积分。因此,如果我在输入正确答案后按下回车键40次,则会增加400点。我试过通过使用:

来防止这种情况
$("form").submit(function() {
    $(this).submit(function() {
        return false;
    });
    return true;
});

但这似乎不起作用。如何在数据提交一次之后禁用提交操作,直到重新加载页面?

欢迎任何使用Javascript,Jquery或PHP的解决方案。

4 个答案:

答案 0 :(得分:3)

var isSubmitted = false;
$("form").submit(function() {
   if(!isSubmitted){
     isSubmitted = true;
   }else{
     return false;
   }
});

答案 1 :(得分:2)

您必须添加一个解决方案来存储在数据库中提交信息,例如每个用户bofore添加值+10,您应检查是否已添加该值。我建议的原因,因为任何其他客户端选项可能在一个或其他情况下失败。

答案 2 :(得分:2)


试试此代码

$('#form1').submit(function(e) {
    $('#send').attr("disabled", "disabled"); // Where #send is the id of ur submit button//
});

答案 3 :(得分:1)

包含Jquery BlockUI插件。 http://www.malsup.com/jquery/block/并在页面中包含以下代码。

$("input").keypress(function(event) {
  if (event.which == 13) {
    event.preventDefault();
    $("form").submit();
    $.blockUI;
  }
});

当插件阻止用户界面时用户点击输入,用户将无法再次点击输入,直到页面重新加载。