通过JSP提交表单时出现Javascript问题

时间:2011-07-28 06:56:32

标签: javascript

当我尝试提交JSP页面时,我遇到了一个问题。

我将简要描述这个场景,以便明确。

情景

我在JSP页面上的html组件中有一些输入元素。

该表有很多<tr>。这些<tr>已被授予ID,例如<tr id="1">

现在我试图将这些tr id的逗号分隔列表传递给服务器端代码或Servlet。

以逗号分隔的列表形成,在JSP的提交或更具体的表单上循环一些逻辑。

问题:

当我提交表单时,有时我在服务器端代码上没有收到上面提到的逗号分隔值。

偶尔会发生这种情况。现在当我像setTimeOut()那样通过Java脚本延迟时,我没有遇到这个问题。

所以有人可以帮我指导吗?

Java Script行为有时是非连续的吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

只要不使用异步机制(例如Timer,Ajax等),JavaScript执行就是顺序的 所以问题是你如何提交表格。我曾编写类似功能的代码,但我从未遇到过你提到的问题。

在这里,我提供了我的解决方案。希望这可以提供帮助。

我不使用<input type="submit" />提交表单。相反,使用一个公共按钮和onclick事件绑定:

<form id="form1" action="serverscripturl" method="post">
  <input type="button" value="submit" onclick="form1submit()" />
  <input id="field1" name="field1" type="hidden" />
</form>

然后我使用JavaScript函数来执行连接和提交:

function form1submit(){
  var list = ""; // your comma separated list
  for (var i = 0; i < data.length; i ++)
    list += (data[i]+",");
  // set the value of field1 the list
  document.getElementById("field1").value = list;
  document.getElementById("form1").submit(); // submit the form<br>
}

并在服务器端脚本response.getParameter("field1")上运行。

希望这可以帮到你。