如何在表单提交之前更改表单元素的id?

时间:2012-06-19 19:35:15

标签: javascript

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

| USER    | MANAGER            | DEPARTMENT   |

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

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

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

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

提交表单时,我写了一些javascript来遍历每一行,找到每一行,然后更改id'manage_ [rownumber]'和'department_ [rownumber]'。

然后我提交表格。我的javascript代码如下。

基于使用警报弹出窗口进行调试,id会按照我想要的方式进行更改,但servlet只会收到一个'manager'参数和一个'department'行号。

为什么不提交所有输入('manager_1','manager_2'等)?更改id后我是否需要做些什么来确保更改在提交表单之前生效?

谢谢!

罗布

这是我的代码:

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;
      }
    }
  }
}

1 个答案:

答案 0 :(得分:5)

因为ID与表单提交无关,name可以。

<强> Happy Reading