0

我在多行中有表单元素。命名这些元素的最佳方法是什么,以便我可以读取表单中的所有值并生成带有这些值的 JSON?由于 HTML 不支持数组,最好的选择是什么?

每行有 2 个文本元素和 1 个选择元素。这些行是动态生成的。

编辑:基本上我想要一种简单的方法将我的数据转换为 JSON,以便我可以将它传递给服务。

我的每一行看起来像这样

<tr><td><input type="text"></input></td>
<td><select><option>Exact</option><option>Regex</option><option>Action</option></select></td>
<td><input type="text"></input></td></tr>

<tr><td><input type="text"></input></td>
<td><select><option>Exact</option><option>Regex</option><option>Action</option></select></td>
<td><input type="text"></input></td></tr> .....
4

3 回答 3

1

我明白了。您可以更改您的 HTML:

<div class="form"> // I prefer getting a namespaced super element
<div class="row">
    <input name="name[0][yo]"/>
    // Other elements
</div>
<div class="row">
    <input name="name[1][yo]"/>
    // other elements
</div>
</div>

然后在 JQuery 中:

$.post('to_my_page', $('.form input, .form select, .form textarea').serialize(), function(data){
    // Done
}, 'json');

这应该允许您将一组输入行发布到另一个页面。

这当然是一个极其简单和基本的例子。

于 2012-10-05T11:50:17.833 回答
0

acoplish 的一种好方法是在值上放置一个 id,例如,您只使用一个文本将其包装在一个跨度中,然后当您需要使 JSON 遍历行并从中获取数据时,即:

var elements = []
$('#formId tr').each(function (i, e){
    elements.push({
        ElementTd1: $('#td1').val()    
   })  
}
于 2012-10-05T11:47:21.607 回答
0

要从表单中提取所有数据,您可以简单地使用jQuery 的 serializeArray()方法,如下所示:

$('form').serializeArray();

jsFiddle 示例

于 2012-10-05T11:50:45.207 回答