jquery:如何访问此输入值

时间:2012-09-16 02:02:48

标签: jquery

演示: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);



    }
});​

1 个答案:

答案 0 :(得分:0)

尝试将值保存为哈希值:

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

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