Javascript 获取要为ajax调用附加的所有表单元素值

Javascript 获取要为ajax调用附加的所有表单元素值,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个物体在一个形状里面 他的值被分配给这样一个ajax调用 var $$ = $(this); if (typeof settings.data == 'string') { data = settings.data + '&' + this.name + '=' + $$.val(); } else if (typeof settings.data == 'object') { data = settings.data; data[this.name] = $$.v

我有一个物体在一个形状里面

他的值被分配给这样一个ajax调用

var $$ = $(this);
if (typeof settings.data == 'string') {
   data = settings.data + '&' + this.name + '=' + $$.val();
 } else if (typeof settings.data == 'object') {
data = settings.data;
    data[this.name] = $$.val();
 }
我想得到这个元素的父表单,循环所有输入,并将其添加到Ajax调用中使用的数据中

我希望输入名称是数据数组的键

可能是这样的:

var form = $$.parents('form:first');
接下来要循环输入并附加到数据


如何使用jQuery实现这一点?

我认为您正在重新发明轮子,已经有一种专门用于此的方法,如下所示:

var data = $(this).closest("form").serialize();

或者,如果需要可以循环/添加到的对象表示,则可以在将其作为数据选项传递之前使用并操纵它。现在还不清楚您到底在追求什么,但听起来您只是想将整个表单作为数据参数传递给或,在这种情况下,这将是完美的。

我认为您正在重新发明轮子,已经有一种专门用于此的方法,如:

var data = $(this).closest("form").serialize();

或者,如果需要可以循环/添加到的对象表示,则可以在将其作为数据选项传递之前使用并操纵它。现在还不清楚您到底在追求什么,但听起来您只是想将整个表单作为数据参数传递给or,在这种情况下,这将是完美的选择。

您看到了吗。使用jQuery“表单”插件?

它将为您完成所有的工作,甚至可以通过动态创建隐藏的iframe并提交来完成文件上传。它还可以使用JSON和或XML格式。非常方便

参见示例

假设AJAX处理程序是st作为表单目标,则其简单如下:

$('#myForm1').ajaxForm();
您还可以覆盖许多选项:

// prepare the form when the DOM is ready 
$(document).ready(function() { 
    var options = { 
        target:        '#output1',   // target element(s) to be updated with server response 
        beforeSubmit:  showRequestFunction,  // pre-submit callback 
        success:       showResponseFunction  // post-submit callback 

        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 

        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    }; 

    // bind form using 'ajaxForm' 
    $('#myForm1').ajaxForm(options); 
}); 

你看到了吗?使用jQuery“表单”插件?

它将为您完成所有的工作,甚至可以通过动态创建隐藏的iframe并提交来完成文件上传。它还可以使用JSON和或XML格式。非常方便

参见示例

假设AJAX处理程序是st作为表单目标,则其简单如下:

$('#myForm1').ajaxForm();
您还可以覆盖许多选项:

// prepare the form when the DOM is ready 
$(document).ready(function() { 
    var options = { 
        target:        '#output1',   // target element(s) to be updated with server response 
        beforeSubmit:  showRequestFunction,  // pre-submit callback 
        success:       showResponseFunction  // post-submit callback 

        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 

        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    }; 

    // bind form using 'ajaxForm' 
    $('#myForm1').ajaxForm(options); 
}); 

不是答案,但是,此.value优于$$.val。也就是说,如果$$==$this,请告诉我您想做什么,而不是如何去做。我想将所有表单输入发布到ajax调用。我必须获取数据变量中的输入值。不是答案,但是,this.value优于$$.val。也就是说,如果$$==$this,请告诉我您想做什么,而不是如何去做。我想将所有表单输入发布到ajax调用。我必须得到数据变量中的输入值。这就是我要找的。这就是我要找的。