Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 意外多个表单输入的解决方案_Php_Jquery_Ajax_Forms - Fatal编程技术网

Php 意外多个表单输入的解决方案

Php 意外多个表单输入的解决方案,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,我有jquery/ajax: $('form').bind('submit', function () { $.ajax({ type: 'post', url: "Write-to.php", data: $("form").serialize(), success: function () { $.get("Data.php", function (data1) {

我有jquery/ajax:

$('form').bind('submit', function () {
     $.ajax({
         type: 'post',
         url: "Write-to.php",
         data: $("form").serialize(),
         success: function () {
             $.get("Data.php", function (data1) {
                 console.log(data1);
                 $(".data").html(data1);
                 scrolltobottom();
                 setFocusToTextBox();
                 $("#usermsg").val("");
             });
             $('.submited').show();
             $('.submited').html("S E N T");
             $("#usermsg").val("");

             setTimeout(function () {
                 $('.submited').fadeOut(1000);
             }, 2000);
         }
     });

     return false;
 });
但是,当我单击enter时,我仍然需要在
$(“#usermsg”).val(”)之前等待一段时间
这会导致意外的重复输入,因为用户认为他们实际上没有发送表单

我在php中设置了一个不允许任何空表单的函数


如何防止多个条目?在提交表单后,您可以在提交时解除绑定,并使用
return false绑定另一个函数防止再次提交表单

var submitting = 0;
$('form').bind('submit', function () {
     if(!submitting)
     {
         submitting = 1;
         $.ajax({
             type: 'post',
             url: "Write-to.php",
             data: $("form").serialize(),
             success: function () {
                submitting = 0;
                $.get("Data.php", function (data1) {
                     console.log(data1);
                     $(".data").html(data1);
                     scrolltobottom();
                     setFocusToTextBox();
                     $("#usermsg").val("");
                });
                $('.submited').show();
                $('.submited').html("S E N T");
                $("#usermsg").val("");

                setTimeout(function () {
                   $('.submited').fadeOut(1000);
                }, 2000);
            }
        });
     }
     return false;
 });

您可以在单击时修改UI,以指示表单已提交。然后,您可以在出错时恢复,或者在成功时继续。例如:单击时,禁用“提交”按钮。出现错误时,重新启用按钮。成功后,执行默认行为。这只会阻止我提交两次。句号!!如果此解决方案有效并回答了您的问题,请接受/投票。事实并非如此,这就是我将其删除的原因!我不明白。你想阻止第二次提交,但你却把它拿走了,因为它阻止你提交两次?它只会满足你的要求。哦,对不起!完全是我的错我的意思是阻止直到“成功”