Jquery 如何在ajax表单提交中提交表单名称和提交按钮名称

Jquery 如何在ajax表单提交中提交表单名称和提交按钮名称,jquery,ajax,forms,post,Jquery,Ajax,Forms,Post,我正在寻找一些简洁的解决方案,在其中我能够发送表单名称和提交带有表单输入字段的按钮名称。我尝试了form.serializeArray()方法,但在post中只获得了输入字段名称。那么,如何在一行代码中发送带有表单名称的完整表单数据和提交按钮名称 <form id="formid" name="formName" class="formClass" action="service.php" method="POST" > <input type="text"

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

 <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();

$(“#formid”).submit(函数(事件){
//var array=$(this).serializeArray();//未发送表单名称和提交按钮
//var data2=new FormData($(“#formid”)[0]);//我也尝试过这个方法
$.ajax({
类型:$(this.attr('method'),
url:$(this.attr('action'),
cache:false,
contentType:false,
processData:false,
数据:formData,
完成:功能(httpResponse,状态){
var response=httpResponse.responseText;
警报(响应);
}
});
event.preventDefault();
}))

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


更多我已经尝试,我可以发送表单名称和提交后数据中的按钮名称。那么,在jQueryAjax中实现这一点的替代方法是什么呢?我得到了答案。即使在提交表单后重新加载页面,表单名称也不会与表单数据一致。只有具有提交按钮名称的所有输入元素被发送到表单数据中。即使输入type=“button”元素名称也不会进入表单数据

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

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

上面的代码将生成所有元素的数组,包括submit按钮名称和值。这样做的好处是,我们可以在服务器端检查submit按钮名称,并且只需一个条件即可执行有价值的操作。

能否请您提供一个相关代码的示例,以便我们更好地了解问题?有关询问的信息,请参阅。如果有多个具有不同值的提交按钮,则无论单击哪个按钮,都会提交所有提交按钮值吗?如果服务器希望总是得到一个值为“SUBMIT”的“SUBMIT”字段,那么只隐藏输入可能更有意义。