jQuery / Javascript代码,用于检索AJAX表单提交脚本的所有表单元素的值

时间:2011-06-25 18:37:51

标签: jquery html ajax forms jquery-selectors

我正在构建一个javascript来使用jQuery自动提交html表单。我想知道是否有可能创建一个javascript方法,如果给定一个标识符来查找表单,将返回所有表单元素和值的映射。我宁愿使用这样的方法,也不是为每个表单元素手动指定jQuery选择器。

function form_submit(){
    jQuery.ajax({  
        type: 'post',  
        url: '/signup/',  
        data: map_form_elements_values('my_form'),  
        success: function(data, textStatus, jqXHR){
                        //foo
                 }
    });  
    return false; 
}

<form id="my_form" action="">
<input class="" id="name" type="text" name="last-name" />
<select class="" id="fruit" type="select" name="fruit-name" />
<option>bananas</option>
</select>
</form>

目标是让map_form_elements_values('my_form')返回ajax函数可以使用的地图。有谁知道怎么做?

3 个答案:

答案 0 :(得分:1)

我最近回答说:

JQuery. How to load inputs values to an array?

jQuery.fn.inputs2obj=function (){
        var out={};
        var arr=this.filter(':input').each(function () {
    e=$(this);
        out[e.attr('name')]=e.val();
        }).get();
        return out;
    }

用法示例:

inputs=$('form').find(:input).inputs2obj();

答案 1 :(得分:1)

看看jQuery表单插件:http://jquery.malsup.com/form/

如果您不需要额外的功能,那么可以使用以下简单的声明:

 myData = $("#formToSubmit").serialize();

        $.ajax({
        type: "POST",
        url: "process_form.php",
        data: myData,
        dataType: "json",
        success: function(data) { ....etc

答案 2 :(得分:0)

您可以使用serialize()serializeArray()

var params = $("#my_form").serialize();
        $.post( "/signup/",params,
                 function(data,textStatus, jqXHR){foo ... } )

参见例如

http://api.jquery.com/serialize/