当用户双击提交按钮时,需要避免向服务器提交两次表单

时间:2016-09-16 12:37:29

标签: javascript jquery forms jquery-validate

使用jquery validatye插件,我正在验证并将表单提交到服务器,该服务器将表单数据存储在数据库中。问题是当用户双击表单时,会有多个请求进入,并且它向服务器提交两次,并导致多个recor在数据库中具有相同的数据。我想避免这种情况。我希望表单只提交一次,即使用户在提交按钮上单击两次。

代码:

kka2=normrnd(130,150,100000,1);%entropy=6.1660

当用户点击提交时,表单被验证,然后调用提交处理函数。即使单击了两次提交按钮,我也希望只调用一次

2 个答案:

答案 0 :(得分:0)

submitHandler仅在表单有效且单击提交按钮后触发。如果您在首次点击后立即停用提交按钮,则无法进行双击。

submitHandler: function(form) {  // form is valid

    // disable submit button since it was already clicked and submit is happening next
    $('#your-submit-button').prop('disabled', true);

    // function to submit form to client
    submitFormtoClient();

}

答案 1 :(得分:0)

每当您确定表单有效且应该提交时,在return true之前,您可以设置表单的提交按钮,它永远不应该提交两次。

如果您确定它不应该提交,则您将返回false。

$('.foo-form').on("submit", function(event){
    $(this).children('button[type=submit]').prop('disabled', true);
    return true;
}

在这种情况下,我使用了button[type=submit],但您也可以使用input[type=submit]