0

演示:http: //jsfiddle.net/mjmitche/sTzCS/39/

我有这个表格,里面有一个无序列表。我已将 jquery 的 sortable() 函数附加到列表中,因此用户可以向上或向下移动表单元素以指示团队将按哪个顺序完成,下面的 jquery 确定用户将它们放入的顺序。但是,我也为每个列表元素创建一个输入字段,以便用户可以输入每个团队将获得的点数。

例如,用户可能会将 Winnipeg 移到列表顶部,并在输入字段中输入值 95。因此,温尼伯将以 95 分排名第一,最终获得 95 分(根据用户对球队排名的预测)。

我的问题是,如何以与团队相关联的方式访问每个表单元素的输入值。例如,如果首先放置温尼伯,根据下面的代码,它将可以在result[0]数组的 at 处访问。但是,我不认为输入值是数组的一部分,所以我不知道如何访问它们。

我能够使用 访问第一个团队 ,但即使输入值看起来像一个子元素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);



    }
});​
4

1 回答 1

0

尝试将值保存为哈希:

...
   first: { team: result[0].id, value: result[0].children()[0].val() }
...

然后以 attributes.first.team 和 attributes.first.value 访问团队和值。

于 2012-09-16T02:10:21.797 回答