问题描述
- form关于checkbox的键值匹配问题
-
<table align="center"> <tr> <td><input type="checkbox" name="names" value="面包">面包 </td> <td><input type="hidden" name="price" value="4">价格:4 </td> <td>数量:<input class="min" name="" type="button" value="-" /> <input class="text_box" name="number" type="text" value=<%=commodity.getNumber() %> /> <input class="add" name="" type="button" value="+" /></td> </tr> <tr> <td><input type="checkbox" name="names" value="葡萄">葡萄 </td> <td><input type="hidden" name="price" value="12">价格:12 </td> <td>数量:<input class="min" name="" type="button" value="-" /> <input class="text_box" name="number" type="text" value=<%=commodity.getNumber() %> /> <input class="add" name="" type="button" value="+" /></td> </tr> <tr> <td><input type="checkbox" name="names" value="苹果">苹果 </td> <td><input type="hidden" name="price" value="3">价格:3 </td> <td>数量:<input class="min" name="" type="button" value="-" /> <input class="text_box" name="number" type="text" value=<%=commodity.getNumber() %> /> <input class="add" name="" type="button" value="+" /></td> </tr> <tr> <td><input type="checkbox" name="names" value="香蕉">香蕉 </td> <td><input type="hidden" name="price" value="1">价格:1 </td> <td>数量:<input class="min" name="" type="button" value="-" /> <input class="text_box" name="number" type="text" value=<%=commodity.getNumber() %> /> <input class="add" name="" type="button" value="+" /></td> </tr> <tr> <td><input type="checkbox" name="names" value="白菜">白菜 </td> <td><input type="hidden" name="price" value="1">价格:1 </td> <td>数量:<input class="min" name="" type="button" value="-" /> <input class="text_box" name="number" type="text" value=<%=commodity.getNumber() %> /> <input class="add" name="" type="button" value="+" /></td> </tr> <tr> <th><input type="submit" id="" value="提交" onclick="getValue()"/> <input type="reset" id="" value="重置"></th> </tr> </table>
如果我选择
<td><input type="checkbox" name="names" value="面包"></td>
那么对应的price和number怎么跟它匹配然后通过form传过去,现在情况是 names传过去了,但是price和number是按顺序传过去 也names不匹配的 谢谢!
解决方案
我是采用后台字符串的拼接,这样的话需要修改前端代码。
form表单中的数据,一组checkBox的话,name属性都相同,可以用request.getParameterValues()取得并不会出错。
而如果是其他的表单数据,他们name属性相同,例如用request.getParameterValues(“price“)获取,就会返回所有name属性为price的表单元素,顺序从上至下,所以他们的name元素不应该相同
JSP代码如下
<tr>
<td>
<input type="checkbox" name="names" value="面包">面包
</td>
<td>
<input type="hidden" name="面包Price" value="4">价格:4 <!-- 最好不要用中文-->
</td>
<td>
数量:<input class="min" name="" type="button" value="-" />
<input class="text_box" name="面包Number" type="text" value='5' />
<input class="add" name="" type="button" value="+" />
</td>
</tr>
Java代码如下
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
request.setCharacterEncoding("UTF-8");
String[] names = request.getParameterValues("names"); //names是可以正确获取的,那么利用names可以获取与它对应的属性。
for(int i=0;i<names.length;i++)
{
System.out.print(names[i]);
System.out.print("-"+request.getParameter(names[i]+"Price")); //字符串拼接该项的价格
System.out.println("-"+request.getParameter(names[i]+"Number")); //该项的数量
}
}
还有就是用javascript,不过没思路啊逃 =w=
解决方案二:
可以设置这个checkbox的onCheck事件,如果被选中的话,就设置关联的其他属性的值。
解决方案三:
请问怎么关联能给个例子么?小白刚入门 谢谢
时间: 2024-11-03 13:05:32