我正在构建一个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函数可以使用的地图。有谁知道怎么做?
答案 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 ... } )
参见例如