如何在Javascript中向表单添加隐藏的ID列表

How to add a hidden list of IDs to a form in Javascript?

本文关键字:隐藏 添加 ID 列表 表单 Javascript      更新时间:2023-09-26

我在html:中有一个简单的表单

<form action="" method="post">
    <input id="title" name="title" size="30" type="text" value="">
    <input type="submit" value="Save this stuff">
</form>

我在页面上还有一个文件上传,它使用ajax处理上传并将文件添加到mongoDB中。文件上传返回文件的mongoDB id(例如12345),我想将该id作为隐藏字段添加到表单中,以便在提交表单时将id张贴到服务器。由于用户可以添加多个文件,所以我想将id列表添加到表单。

我发现了如何从javascript向表单添加一个隐藏字段,但这总是处理一个字段,而不是一个有多个值的字段。所以我想在表单中添加一个复选框字段,这样我就可以在一个元素中提交多个值,但这有点像黑客。

有人能告诉我如何使用Javascript向表单添加隐藏的值列表吗?欢迎所有提示!

[编辑]最后,我希望表格看起来像这样:

<form action="" method="post">
    <input type="hidden" name="ids" value="[123, 534, 634, 938, 283, 293]">
    <input id="title" name="title" size="30" type="text" value="">
    <input type="submit" value="Save this stuff">
</form>

我不确定我是否正确理解你的问题,所以我可能只是在猜测。

尝试添加多个名称为ids[]的隐藏输入,以便将它们作为数组发布到服务器。

示例:

<form action="" method="post">
    <input type="hidden" name="ids[]" value="123">
    <input type="hidden" name="ids[]" value="534">
    <input type="hidden" name="ids[]" value="634">
    <input type="hidden" name="ids[]" value="938">
    <input type="hidden" name="ids[]" value="283">
    <input type="hidden" name="ids[]" value="293">
    <input type="submit" value="Save this stuff">
</form>

为什么不简单地将所有id连接到一个字符串中,比如"123456890,..etc",然后将它们作为值添加到ids inupt中。当你需要它们时,只需用"来分割,这会给你一个带有id的数组?

Todo所以只有像这样的javascript才能工作

var elem = document.getElementById("ids");
elem.value = elem.value + "," + newId;

您的意思是,每次用户单击"上传"按钮时,您都需要在表单中添加一个隐藏字段吗?你能把整个表格贴出来吗,这样应该可以把事情弄清楚。。。

[编辑]您可以将id存储在数组中,每次将id添加到隐藏字段的值时,您可以执行以下操作:
$('#ids').attr('value',idArray.join());

我只是开箱即用地打这个,所以请原谅任何小错误