qq_24466159
qq_24466159
2016-04-10 07:19
采纳率: 50%
浏览 1.6k
已采纳

form关于checkbox的键值匹配问题

    <table align="center">
        <tr>
            <td><input type="checkbox" name="names" value="面包">面包 &nbsp;&nbsp;</td>
            <td><input type="hidden" name="price" value="4">价格:4 &nbsp;&nbsp;&nbsp;&nbsp;</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="葡萄">葡萄&nbsp;&nbsp;</td>
            <td><input type="hidden" name="price" value="12">价格:12 &nbsp;&nbsp;&nbsp;&nbsp;</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="苹果">苹果 &nbsp;&nbsp;</td>
            <td><input type="hidden" name="price" value="3">价格:3 &nbsp;&nbsp;&nbsp;&nbsp;</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="香蕉">香蕉 &nbsp;&nbsp;</td>
            <td><input type="hidden" name="price" value="1">价格:1 &nbsp;&nbsp;&nbsp;&nbsp;</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="白菜">白菜 &nbsp;&nbsp;</td>
            <td><input type="hidden" name="price" value="1">价格:1 &nbsp;&nbsp;&nbsp;&nbsp;</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不匹配的 谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • friendly_6
    付大石 2016-04-10 08:38
    已采纳

    我是采用后台字符串的拼接,这样的话需要修改前端代码。

    form表单中的数据,一组checkBox的话,name属性都相同,可以用request.getParameterValues()取得并不会出错。
    而如果是其他的表单数据,他们name属性相同,例如用request.getParameterValues(“price“)获取,就会返回所有name属性为price的表单元素,顺序从上至下,所以他们的name元素不应该相同

    JSP代码如下

     <tr>
                <td>
                    <input type="checkbox" name="names" value="面包">面包&nbsp;&nbsp;
                </td>
                <td>
                    <input type="hidden" name="面包Price" value="4">价格:4 &nbsp;&nbsp;&nbsp;&nbsp;    <!-- 最好不要用中文-->
                </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=

    点赞 评论
  • wojiushiwo945you
    毕小宝 2016-04-10 08:05

    可以设置这个checkbox的onCheck事件,如果被选中的话,就设置关联的其他属性的值。

    点赞 评论
  • qq_24466159
    qq_24466159 2016-04-10 08:16

    请问怎么关联能给个例子么?小白刚入门 谢谢

    点赞 评论

相关推荐