0

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

$("form").submit(function() {
    $(this).submit(function() {
        return false;
    });
    return true;
});

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

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

4

4 回答 4

3
var isSubmitted = false;
$("form").submit(function() {
   if(!isSubmitted){
     isSubmitted = true;
   }else{
     return false;
   }
});
于 2013-05-17T13:20:42.813 回答
2

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

于 2013-05-17T13:20:37.767 回答
2


试试这个代码

$('#form1').submit(function(e) {
    $('#send').attr("disabled", "disabled"); // Where #send is the id of ur submit button//
});
于 2013-05-17T13:27:57.437 回答
1

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

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

当用户点击回车时,插件将阻止 UI 并且用户将无法再次点击回车,直到页面重新加载。

于 2013-05-17T13:23:17.063 回答