【问题标题】:Prevent first form submit when submit second from防止提交第二个表单时提交第一个表单
【发布时间】:2016-11-10 13:59:59
【问题描述】:

这是交易(使用 php 和 laravel-5.2)。
我在一个页面中有一些forms,当我提交another form而不是第一个时,它会继续提交first form
这是我的html代码:

<form method="POST" action="http://localhost:8888/candidates/18" accept-charset="UTF-8" id="name-edit" style="display:none">
     <input name="_method" type="hidden" value="PUT">
     <input name="_token" type="hidden" value="xxzvu6HIqP8k2kg78pxuHiTc8NWftjNL1IJvxbDo">
     <div  class="form-group ">
         <div  class="col-xs-12 col-sm-5 ">
             <input placeholder="Full Name" error="" id="name-input" class="width-100" name="name" type="text" value="chi qua uqaaa1232">
         </div>
     </div>
     <button class="green btn-link col-xs-4" type="submit"><i class="ace-icon glyphicon glyphicon-ok"></i> Click to save or press Enter</button>
</form>

<form method="POST" action="http://localhost:8888/candidates/18" accept-charset="UTF-8" id="address-edit" style="display:none">
     <input name="_method" type="hidden" value="PUT">
     <input name="_token" type="hidden" value="xxzvu6HIqP8k2kg78pxuHiTc8NWftjNL1IJvxbDo">
     <div class="form-group ">
          <div class="col-xs-12 col-sm-5 ">
               <input placeholder="Address" error="" id="address-input" class="width-100" name="address" type="text" value="nha xacdawdwad">
          </div>
     </div>
     <button class="green btn-link col-xs-4" type="submit"><i class="ace-icon glyphicon glyphicon-ok"></i> Click to save or press Enter</button>
</form>

我的两种形式的 jquery 代码:

$(document).ready(function(){
    $("#name-edit").focusout(function() {
        $('#name-edit').css('display', 'none');
        $('#name-view').css('display', 'inline');
    });

    $("#address-edit").focusout(function() {
        $('#address-edit').css('display', 'none');
        $('#address-view').css('display', 'inline');
    });
});

$('#btn-edit-name').click(function () {
    var name = $('#name-view').css('display', 'none').clone().children().remove().end().text();
    $('#name-input').val(name);
    $('#name-edit').css('display', 'inline').focus();
});

$('#btn-edit-address').click(function () {
    var name = $('#address-view').css('display', 'none').clone().children().remove().end().text();
    $('#address-input').val(name);
    $('#address-edit').css('display', 'inline').focus();
});

btn-edit-namebtn-edit-address 用于显示表单。感谢您的考虑。
这是我的用户界面:

【问题讨论】:

    标签: php jquery html forms laravel-5


    【解决方案1】:

    你可以有两个不同的动作

    action="http://localhost:8888/candidates/18"
    
    action="http://localhost:8888/candidates/19" 
    

    如果不可能,为每个表单添加不同的隐藏输入,例如

    在表格 1 中添加这一行

     <input type="hidden" name="identifier" value="form1">
    

    在表格 2 中添加这一行

    <input type="hidden" name="identifier" value="form2">
    

    现在您可以使用if ($_POST['identifier'] == 'form1')

    你也可以使用 switch 语句

    switch($_POST['identifier']){
        case 'form1':{}
        case 'form2':{}
    }
    

    您的两个提交按钮也是相同的。您可以为每个可以在提交后检查的值设置一个值。像这样设置值 对于表格 1 名称

    <button class="green btn-link col-xs-4" type="submit" value="name" name="name"><i class="ace-icon glyphicon glyphicon-ok"></i> Click to save or press Enter</button>
    

    表格2地址

    <button class="green btn-link col-xs-4" type="submit" value="address" name="address"><i class="ace-icon glyphicon glyphicon-ok"></i> Click to save or press Enter</button>
    

    【讨论】:

    • 当我vardump请求只有数据表单第一个表单时,两个表单必须提交到同一个地方
    • @HọTên 一次只能提交一个表单,这就是请求/响应模型的工作方式
    • 我不想同时提交 2 个表单
    • @HọTên 为您的提交按钮提供不同的值和名称,然后检查。
    【解决方案2】:

    您不能同时提交 2 个表单。

    您可以将名称和地址字段添加到单个表单中,而不是使用 2 个表单,如下所示:

    <form method="POST" action="http://localhost:8888/candidates/18" accept-charset="UTF-8" id="name-edit" style="display:none">
         <input name="_method" type="hidden" value="PUT">
         <input name="_token" type="hidden" value="xxzvu6HIqP8k2kg78pxuHiTc8NWftjNL1IJvxbDo">
         <div  class="form-group ">
             <div  class="col-xs-12 col-sm-5 ">
                 <input placeholder="Full Name" error="" id="name-input" class="width-100" name="name" type="text" value="chi qua uqaaa1232">
             </div>
         </div>
         <div class="form-group ">
            <div class="col-xs-12 col-sm-5 ">
               <input placeholder="Address" error="" id="address-input" class="width-100" name="address" type="text" value="nha xacdawdwad">
            </div>
         </div>
         <button class="green btn-link col-xs-4" type="submit"><i class="ace-icon glyphicon glyphicon-ok"></i> Click to save or press Enter</button>
    </form>
    

    如果您希望在单击时显示隐藏它们,那么您可以添加一些 jQuery 来实现。

    【讨论】:

    • 我不想同时提交 2 个表格。我只想为每个提交提交一份表格,感谢其他解决方案
    【解决方案3】:

    哦,我找到了将type提交按钮设置为button的答案,然后将jquery设置为点击事件$(this).closest('form').submit()

    【讨论】:

      猜你喜欢
      • 2018-08-25
      • 2013-01-18
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      相关资源
      最近更新 更多