如何将函数中生成的数组插入HTML正文?

时间:2017-01-26 06:47:47

标签: jquery html html5

如何插入此函数生成的数组...

<script>
    function generate_array() {
        var items = $("#sortable").sortable("toArray");
        // TODO: Insert the array of items into the form below.
    }
</script>

...进入当前所说 ARRAY_OF_ITEMS 的区域......

...
<body>
...
    <form id="sortable_list" action="/cgi-bin/test" method="post">
        <ul id="sortable">
            <li id="1">item1</li>
            <li id="2">item2</li>
            <li id="3">item3</li>
            <li id="4">item4</li>
        </ul>
        <input type="hidden" name="page"   value="items"/>
        <input type="hidden" name="action" value="save_order"/>
        <input type="hidden" name="order"  value="ARRAY_OF_ITEMS"/>
        <input type="submit" value="save" onclick="generate_array()"/>
    </form>
...
</body>

...因此,如果在提交表单时项数组变量为4,2,1,3,则发送的POST字符串将为page=items&action=save_order&order=4,2,1,3

假设页面有其他形式,因此答案需要专门针对该区域。我正在生成HTML,因此如果答案需要,可以添加额外的属性。

2 个答案:

答案 0 :(得分:1)

尝试$("[name='order']", $("#sortable_list")).val (items);

答案 1 :(得分:0)

您希望使用jQuery&#39; attribute selector定位您的输入,然后设置如下值:

$('#sortable_list [name="order"]').val(items);

如果您想要查看它的实际效果,可以展开下面的代码段。

&#13;
&#13;
$(function() {
  let items = "4,2,1,3";
  $('#sortable_list [name="order"]').val(items);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="sortable_list" action="/cgi-bin/test" method="post">
  <ul id="sortable">
    <li id="1">item1</li>
    <li id="2">item2</li>
    <li id="3">item3</li>
    <li id="4">item4</li>
  </ul>
  <input type="hidden" name="page" value="items" />
  <input type="hidden" name="action" value="save_order" />
  <input type="input" name="order" value="ARRAY_OF_ITEMS" />
  <input type="submit" value="save" onclick="generate_array()" />
</form>
&#13;
&#13;
&#13;