javascript - 使用数组构建 HTML 表单

标签 javascript html forms jsp

我有一个包含以下元素的表单:

<div class="row1">
   <select name="someSelectField" multiple="multiple" class="selectList">
      <option value="1">1</option>          
      <option value="2">2</option>          
   </select>
   <input type="checkbox" name="checkboxField" class="checkboxField" value="1" /> checkbox</td>
</div>
<div class="row2">
   <select name="someSelectField" multiple="multiple" class="selectList">
      <option value="1">1</option>          
      <option value="2">2</option>          
   </select>
   <input type="checkbox" name="checkboxField" class="checkboxField" value="1" /> checkbox</td>
</div>

这些将继续在页面下方。这些相同字段有很多不同的行。没有设置行,因为 javascript 用于创建更多行。

我的问题是,每个名称属性的值应该是多少,以便它保持分组为数组并可以一起引用?例如,如果我使用 someSelectField[1],当方法为 GET 时,表单会像 someSelectField[1]=1&someSelectfield[1]=2 一样发送它(如果两者都被选中)。我正在寻找它是 someSelectField=1&someSelectfield=2 等。

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

你为什么不给控件唯一的名字呢?如果您的 javascript 能够为 div 提供索引类名,您可以像这样重组 html:

<div class="row1">
   <select name="someSelectField1" multiple="multiple" class="selectList">
      <option value="1">1</option>          
      <option value="2">2</option>          
   </select>
   <input type="checkbox" name="checkboxField1" class="checkboxField" value="1" /> checkbox</td>
</div>
<div class="row2">
   <select name="someSelectField2" multiple="multiple" class="selectList">
      <option value="1">1</option>          
      <option value="2">2</option>          
   </select>
   <input type="checkbox" name="checkboxField2" class="checkboxField" value="1" /> checkbox</td>
</div>

这也有独立于服务器的好处,因为一些框架可以很好地解析 html 数组并为您提供适当的数组,而有些只是覆盖键。

如果您被允许从中间移除元素而不是仅仅从末尾移除元素,您的解析在后端可能会变得有点困惑,但它应该不会太糟糕。如果这是一个问题,您可以编写一个简单的 jQuery 脚本来重新排列您的所有姓名。警告,未经测试的代码如下:

$("div[class^='row']").each(function(idx, value) {
    var $value = $(value);
    $value.find(".selectList").attr("name", "someSelectField"+(idx+1));
    $value.find(".checkboxField").attr("name", "checkboxField"+(idx+1));
});

关于javascript - 使用数组构建 HTML 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491270/

相关文章:

javascript - 禁用输入文本访问但保持元素启用

html - 如何让文本出现在 <div> 内的文本之上

javascript - 如何修复表单控件中的空数组而不使用 mySql(PHP、AJAX、JQuery、JS)

javascript - PhantomJS Node - page.open - 无法跟踪多个页面

javascript - 循环遍历 react 中的项目数组

javascript - 如何在另一个图像 rails 的图像标签内添加 src 图像路径

php - 以 PHP 形式发送复选框值

html - 停止按钮提交表单

javascript - 多个 FileUpload 将文件路径显示为文本

javascript - 导入文本对话框中的文本对齐