javascript - 如何在提交表单之前更改表单元素的ID?

标签 javascript

我有一个包含许多行的表,每行都有选择列表。像这样的事情:

| USER    | MANAGER            | DEPARTMENT   |

| Rob     | [John Smith |V]    | [Sales |V]   | 

| Sue     | [Bob Jones |V]     | [Support |V] |

用户可以自由添加新行,行数很多,列表内容也很复杂。

我通过为每个经理选择器 ID 'manager' 和每个部门选择器 ID 'department' 大大简化了事情。

提交表单后,我编写了一些 JavaScript 来循环遍历每一行,找到每一行,并更改 ID 'manager_[rownumber]' 和 'department_[rownumber]'。

然后我提交表单。我的 JavaScript 代码如下。

根据警报弹出窗口的调试,ID 正在按照我想要的方式进行更改,但 servlet 只接收一个“经理”参数和一个“部门”行号。

为什么没有提交所有输入(“manager_1”、“manager_2”等)?更改 ids 后我需要做些什么来确保更改在提交表单之前生效吗?

谢谢!

这是我的代码:

function submitForm() {
  correctInputIDs();
  document.myform.submit();
}

function correctInputIDs() {
  var rows = document.getElementsByTagName("tr");
  for (var i=0; i<rows.length; i++) {
    var row = rows[i];
    selectElements = rows.getElementsByTagName("select");
    for (var j=0; j<selectElements.length; j++) {
      var selectElement = selectElements[j];
      if (selectElement.id == "manager") {
        selectElement.id = "manager_"+i;
      }
      if (selectedElement.id == "department") {
        selectElement.id = "department_"+i;
      }
    }
  }
}

最佳答案

因为 ID 与表单提交无关,name 才重要。

<强> Happy Reading

关于javascript - 如何在提交表单之前更改表单元素的ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11108096/

相关文章:

javascript - 如何停止和重新启动动画 gif

javascript - 如何从某些对象中过滤 json 对象。 (仅选择部分值)

javascript - 如何在cypress中将within()函数与contains()函数一起使用

javascript - 使用 ReactJS 处理 AJAX 调用后的 Rails flash 消息

javascript - Snapsvg 变换线

javascript - 颜色更改按钮不起作用

javascript - 未捕获错误 : Syntax error, 无法识别的表达式::nth-child for simple slide

javascript 自动完成关闭并出现视觉错误

javascript - 将多维数组转换为特定的字符串格式

javascript - 为什么某些技术上可序列化的输入属性不可序列化?