具有相同名称/ id属性

时间:2015-12-05 08:47:22

标签: java jsp servlets

我在JSP页面中有两个表单。

<form id="myForm1">
<input type="text" name="formText" id="formText"></input>
.
.
.


</form>

<form id="myForm2">
<input type="text" name="formText" id="formText"></input>
.
.
.


</form>

在我的JavaScript中,我能够区分两个文本框,尽管两个文本框都使用相同的名称/ ID,使用类似这样的表单ID

document.forms["myForm1"]["formText"].value and 
document.forms["myForm2"]["formText"].value return different values. 

如何在Java代码中进行区分?例如,request.getParameter(&#34; formText&#34;)会返回什么?我希望能够在我的业务目标中做出这种区分。请帮忙。

2 个答案:

答案 0 :(得分:2)

元素ID在整个文档中应该是唯一的,这是您应该遵循的规则。顺便说一句,你可以使用2个输入隐藏的字段,这些字段具有相同的名称但不同的值,然后在服务器端你应该能够达到你的目标。

<form id="myForm1">
 <input type="text" name="formText" id="formText"></input>
 <input type="hidden" name="whichform" value="myForm1"></input>
 .
 .


</form>

<form id="myForm2">
 <input type="text" name="formText" id="formText"></input>
 <input type="hidden" name="whichform" value="myForm2"></input>
 .
 .


</form>

答案 1 :(得分:0)

如果两种表单的业务逻辑不同,您可以考虑将表单的操作定位到不同的处理程序 - 每个表单一个。

<form id="myForm1" action="form1action.jsp">

在这种情况下,如果提交了form1,form1action.jsp将接收所有值,form2action.jsp将获得form2.jsp的所有值

这允许更简洁的设计,因为如果向form2添加字段,则不需要触摸form1内容。

原因Servlet可能更适合作为处理程序......