从$(this)生成数据数组.serialize()

时间:2010-02-23 17:47:41

标签: javascript jquery html

我有一个产品页面,如果用户点击编辑,则会填充重叠表单窗口以使其可编辑。

完成修改并且用户点击提交后,我想更新已更改的产品的每个字段的text()

因此,我可以使用$(this).serialize()作为数组

,而不是获取每个输入字段的值并进行更新

我想到的当前解决方案是:

var name = $("#input_name").val();
$("#name_id").innerhtml(name);

但问题是有很多字段,我想使用jQuery的强大功能,而不是手动抓取每个输入字段的值。

2 个答案:

答案 0 :(得分:3)

查看serializeArray方法。

var array = $('#someForm').serializeArray();

答案 1 :(得分:2)

那么,必须有一些方法将输入元素与想要更新的纯文本元素(spans?divs?)相关联。这可能是通过某种命名约定,或者是输入字段类名中的一些显式挂钩。一旦你建立了这个约定,迭代表单字段并更新文本应该是一件非常容易的事。

因此,例如,如果文本区域是<span>标签,其“id”值是输入字段的名称加上后缀“_text”,那么您可以执行以下操作:

$('#theFormId input:text').each(function() {
  $('span#' + $(this).attr('name') + '_text').text($(this).val());
});

当然,大约有十亿种可能的变化。