我一直在摔跤这个问题几个小时了。jquery从表单数据创建数组
从本质上讲,我需要做的就是采取以下或类似HTML:
<div id="excpdivs">
<div class="excpdiv" id="excpdiv0">
Date: <input name="excp[0][date]">
Open: <input name="excp[0][open]">
Close: <input name="excp[0][close]">
</div>
<div class="excpdiv" id="expdiv1">
Date: <input name="excp[1][date]">
Open: <input name="excp[1][open]">
Close: <input name="excp[1][close]">
</div>
,并得到类似通过AJAX以下PHP脚本的数组:
Array
(
[0] => Array
(
[date] => 2012-09-15
[open] => 3:00
[close] => 5:00
)
[1] => Array
(
[date] => 2012-09-16
[open] => 2:00
[close] => 5:00
)
)
我的主要问题是从输入元素中获取值。我的最新尝试如下:
var results = [];
$(".excpdiv").each(function(){
var item = {};
var inpts = $(this).find("input");
item.date = $(inpts.get(0)).val();
item.open = $(inpts.get(1)).val();
item.close = $(inpts.get(2)).val();
results.push(item);
});
我在正确的轨道上,或我彻底失败了?
标准形式提交,或阿贾克斯? (与你的问题无关,你可以说'inpts.eq(0).val()'而不是'$(inpts.get(0)).val()' - 你不必自己创建另一个jQuery对象。 – nnnnnn
你的问题是什么?代码可以改进,但可以。 – Christophe
nnnnnn,用Ajax代替标准表格提交 – AndrewStevens