2012-06-19 49 views
0

我有一个很多行的表,每行都有选择列表。例如:如何在提交表单之前更改表单元素的id?

| 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'参数和一个'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; 
     } 
    } 
    } 
} 
+0

您所呼叫的correctInputIDs(后document.myform.submit())。很明显,这将事只有一个value.Try else.Make使用jQuery和Ajax.It的将是有益的。 – vijay

回答

5

因为ID不与表单提交没关系,name就做。

Happy Reading

+0

真相,我可以吻你!将.id更改为.name - 效果很好。谢谢! –

相关问题