【问题标题】:how to submit form name and submit button name in ajax form submission如何在ajax表单提交中提交表单名称和提交按钮名称
【发布时间】:2014-10-31 22:06:25
【问题描述】:

我正在寻找一些简洁的解决方案,我可以在其中发送表单名称并使用表单输入字段提交按钮名称。我尝试了 form.serializeArray() 方法,但我只在帖子中获取输入字段名称。那么如何发送完整的表单数据和表单名称并在一行代码中提交按钮名称

 <form id="formid" name="formName" class="formClass" action="service.php" method="POST" >
        <input type="text" id="fname" name="fname"/>
        <input type="text" id="lname" name="lname" />
        <input type="Submit" id="SUBMIT" value="SUBMIT" name="submit"/>

    </form>

    $( "#formid" ).submit(function( event ) {
    //var array = $(this).serializeArray() ;  //  Didn't send Form name and submit button
    // var data2 = new FormData($( "#formid" )[0]); // I have also tried this



      $.ajax({
        type: $(this).attr('method'),
        url : $(this).attr('action') , 
        cache: false,
        contentType: false,
        processData: false,
        data:  formData,
        complete:function(httpResponse, status) {
        var response = httpResponse.responseText;       
        alert(response);

        }
      });


    event.preventDefault();

});

我想在 ajax 中发送表单名称和提交按钮名称,就像提交表单后重新加载页面时一样。

更多我已经尝试MALSUP,我可以在 POST 数据中发送表单名称和提交按钮名称。那么在 Jquery AJAX 中执行此操作的替代方法是什么

【问题讨论】:

  • 能否请您提供相关代码的示例,以便我们更好地理解问题?有关询问的信息,请参阅posting guidelines

标签: jquery ajax forms post


【解决方案1】:

我得到了答案。即使在提交表单后页面重新加载,表单名称也不会与表单数据一起使用。只有带有提交按钮名称的所有输入元素被发送到表单数据中。甚至 input type="button" 元素名称也不会进入表单数据。

但是,当我们使用 ('form').serialize() 方法或 ('form').serailizeArray() 方法时,使用 AJAX 表单提交时,所有表单元素值及其名称都会被序列化,但 SUBMIT Button 值不会序列化这。但我找到了一种解决方案,可以用最少的代码行发送提交按钮 NAME 和 VALUE。

var formdata = new FormData();
     for (var i = 0; i < $(this)[0].length; i++) {
        formdata.append($(this)[0][i].name, $(this)[0][i].value);
    }

上面的代码将生成所有元素的数组,包括提交按钮 NAME 和 VALUE。这样做的好处是我们可以在 SERVER SIDE 中检查提交按钮的名称,并且可以仅基于一个条件执行有价值的操作。

【讨论】:

  • 如果有多个不同值的提交按钮,这是否提交所有的提交按钮值,不管点击哪个?如果服务器期望总是得到一个值为“submit”的“SUBMIT”字段,那么只有一个隐藏的输入可能更有意义。
猜你喜欢
  • 2015-05-07
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多