演示:http://jsfiddle.net/mjmitche/sTzCS/39/
我有这个表单,里面有一个无序列表。我已经将jquery的sortable()函数附加到列表中,因此用户可以向上或向下移动表单元素以指示团队将完成的顺序,并且下面的jquery确定用户将它们放入的顺序。但是,我也是为每个列表元素创建一个输入字段,以便用户可以输入每个团队将获得的点数。
例如,用户可能会将Winnipeg移动到列表顶部,并在输入字段中输入值95。因此,温尼伯将首先以95分结束(根据用户对球队积分榜的预测)。
我的问题是,如何以与团队相关联的方式访问每个表单元素的输入值。例如,如果首先放置Winnipeg,则根据下面的代码,可以在阵列的result[0]
处访问它。但是,我不认为输入值是数组的一部分,所以我不知道如何访问它们。
我能够使用attribute.first
访问第一个团队,但即使输入值看起来像子元素,也无法获得attribute.first.child
的点数。
我最终希望能够将每个团队的位置编号(由排序位置确定)和点数(由用户手动输入确定)保存到数据库中
html
<form<form id="new_entry">
<ul id="sortlist">
<li id="Vancouver">Canucks<input type="text" name="name" id="vanpoints"></li>
<li id="Toronto">Toronto<input type="text" name="name" id="torontopoints"></li>
<li id="Montreal">Montreal<input type="text" name="name" id="montrealpoints"></li>
<li id="Ottawa">Ottawa<input type="text" name="name" id="ottawapoints"></li>
<li id="Calgary">Calgary<input type="text" name="name" id="calgarypoints"></li>
<li id="Edmonton">Edmonton<input type="text" name="name" id="edmontonpoints"></li>
<li id="Winnipeg">Winnipeg<input type="text" name="name" id="winnipegpoints"></li>
</ul>
<input type="submit" value="Add">
</form>
码
$("#sortlist").sortable({
stop: function(event, ui) {
result = $("#sortlist").sortable("toArray");
var attributes;
attributes = {
first: result[0],
second: result[1],
third: result[2],
fourth: result[3],
fifth: result[4],
six: result[5],
seventh: result[6]
};
alert(attributes.first.child);
}
});
答案 0 :(得分:0)
尝试将值保存为哈希值:
...
first: { team: result[0].id, value: result[0].children()[0].val() }
...
然后访问团队和值作为attributes.first.team和attributes.first.value。