在javascript中设置多值参数

发布于 2024-07-10 18:34:43 字数 420 浏览 7 评论 0原文

当我在 HTML 中提交表单时,我可以多次传递参数,例如

<input type="hidden" name="id" value="2">
<input type="hidden" name="id" value="4">

然后在 struts 中我可以有一个带有属性 String[] id 的 bean,并且它将正确填充数组。

我的问题是,我怎样才能在 Javascript 中做到这一点? 当我有一个数组并设置 form.id.value = myArray 时,它只是将值设置为逗号分隔的列表。 那么在 Struts 端,我只得到单元素数组,即字符串“2,4”。

我应该补充一点,我需要以表单的形式提交它,所以我不能只生成一个 GET 请求,例如 id=2&id=4。

When I submit a form in HTML, I can pass a parameter multiple times, e.g.

<input type="hidden" name="id" value="2">
<input type="hidden" name="id" value="4">

Then in struts I can have a bean with property String[] id, and it'll populate the array correctly.

My question is, how can I do that in Javascript? When I have an array, and I set form.id.value = myArray, it just sets the value to a comma-separated list. So then on the Struts end, I just get one-element array, i.e. the String "2,4".

I should add, I need to submit this in a form, so I can't just generate a GET request, e.g. id=2&id=4.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

寂寞清仓 2024-07-17 18:34:43

这是您要找的吗? 它为 JavaScript 数组的每个元素生成一个隐藏的表单字段:

var el;
for (var i = 0; i < myArray.length) {
    el = document.createElement("input");
    el.type = "hidden";
    el.name = "id";
    el.value = myArray[i];

    // Optional: give each input an id so they can easily be accessed individually:
    el.id = "hidden-myArray-" + i;

    // Optional: give all inputs a class so they can easily be accessed as a group:
    el.className = "hidden-myArray";

    form.appendChild(el);
}

Is this what you're looking for? It generates a hidden form field for each element of a JavaScript array:

var el;
for (var i = 0; i < myArray.length) {
    el = document.createElement("input");
    el.type = "hidden";
    el.name = "id";
    el.value = myArray[i];

    // Optional: give each input an id so they can easily be accessed individually:
    el.id = "hidden-myArray-" + i;

    // Optional: give all inputs a class so they can easily be accessed as a group:
    el.className = "hidden-myArray";

    form.appendChild(el);
}
神妖 2024-07-17 18:34:43

不确定您想要做什么,但可以尝试一下:

var inputs = document.getElementsByName('id');
for(var i=0; i<inputs.length; i++) {
    var input = inputs[i];
    input.value = myArray[i];
}

迭代名称为“id”的所有输入,并从 myArray 中分配相应的值。

您最好确保 myArray.length == document.getElementsByName('id').length

Not positive what you're trying to do but here's a go:

var inputs = document.getElementsByName('id');
for(var i=0; i<inputs.length; i++) {
    var input = inputs[i];
    input.value = myArray[i];
}

That iterates over all the inputs with name 'id' and assigns the corresponding value from myArray.

You better be sure myArray.length == document.getElementsByName('id').length

£烟消云散 2024-07-17 18:34:43

一种方法是为每个输入提供唯一的 ID:-

<input id="id1" type="hidden" name="id" value="2">
<input id="id2" type="hidden" name="id" value="4">

然后在 javascript 中:-

document.getElementById("id1").value = myArray[0];
document.getElementById("id2").value = myArray[1];

One approach would be to give each input a unique ID:-

<input id="id1" type="hidden" name="id" value="2">
<input id="id2" type="hidden" name="id" value="4">

Then in javascript:-

document.getElementById("id1").value = myArray[0];
document.getElementById("id2").value = myArray[1];
山有枢 2024-07-17 18:34:43

forms[0].elements.theName 包含名称属性为“theName”的所有元素的集合。 例子:

<form>
<input type="text" name="test"><br>
<input type="text" name="test">
</form>
<script>
var values = ['foo', 'bar'];
var testElements = document.forms[0].elements.test;
for(var i = 0; i < testElements.length; ++i)
    testElements[i].value = values[i];
</script>

forms[0].elements.theName contains a collections of all elements with name-attribute 'theName'. Example:

<form>
<input type="text" name="test"><br>
<input type="text" name="test">
</form>
<script>
var values = ['foo', 'bar'];
var testElements = document.forms[0].elements.test;
for(var i = 0; i < testElements.length; ++i)
    testElements[i].value = values[i];
</script>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文