2 qq 24466159 qq_24466159 于 2016.04.10 15:19 提问

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
friendly_6   2016.04.10 16: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=

qq_24466159
qq_24466159 这是一种方法 是标签名字区别来匹配键值。 试过了 成功!
2 年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.10 16:05

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

wojiushiwo945you
wojiushiwo945you 回复qq_24466159: doSom()可以是一个js的function,执行你需要的处理。
2 年多之前 回复
wojiushiwo945you
wojiushiwo945you 回复qq_24466159: <td><input type="checkbox" name="names" value="面包" oncheck="doSom();"></td>
2 年多之前 回复
qq_24466159
qq_24466159 请问怎么关联能给个例子么?小白刚入门 谢谢
2 年多之前 回复
qq_24466159
qq_24466159   2016.04.10 16:16

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Spring MVC框架checkbox标签的使用
代码: checkboxForm.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 测试checkbox标签 form:checkbox测试 选择课程:  
Spring 的 form表单 之 checkbox
Spring MVC 有用于表单绑定的标签。但这些标签最终也会生成标准的 HTML 页面。所以,理论上这些标签是不需要的,只要模拟它们生成的 HTML 就可以了。  Spring MVC 的 Form 标签生成的 HTML 很有规律: 元素的 id 属性对应 modelAttribute,input 元素的 name 属性对应 model 中的属性。但是,有一点需要注意。如果 input
Form中checkbox的实现
 效果: 一般这种item的名称为enable_flag 属性 值 subclass information checkbox value when checked Y value when unchecked N initial value N 默认是不选上时,设置che
Form表单之复选框checkbox操作
1.input复选(checkbox): input复选1组: checkbox复选1 checkbox复选2 checkbox复选3 相同name的单选项为同一组复选,checked="checked"选中某复选项;相同name的单选项为同一组复选,checked="checked"选中某复选项;相同name的单选项为同一组复选,checked="checked"选中某复选项;
form表达提交checkbox问题
一个项目中好多checkbox控件系统会不会提交 jquery 有一个serialize()方法,如果一个checkbox没有被选中,它会不会被序列化呢?
表单提交复选框(checkbox)注意事项
例子: 唱歌 跳舞 轮滑 lol   $hobby=$_POST['hobby']; echo print_r($hobby); ?> 如果不加[] 提交多个数据时,就不会以一个数组的方式提交,通常只会提交最后一个数
利用JQuery操作form表单,例如:text,radis,checkbox,file等等之类的
今天给大家总结一下form表单中一些常用的操作,例如:获取值,隐藏控件,设置控件不可修改,设置值等等之类的。下面看具体的例子:&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt; &amp;lt;html ...
jQuery 获取checkbox选中的值form表单提交例子
前台页面 pageEncoding="utf-8"%> 无标题页 var zhi  function addClick(){  $(document).ready(function(){ var idsstr = " "; var zhi = " "; $(".mian_b_bg_xz input[name=checkbox]").each(fu
带复选框的表单提交
实现了: 1.选中除开表头的任何项,选中该行复选框。 2.至少选中表中任何一项,表单提交。 html: 带复选框的表单提交 table { border-collapse: collapse; } td,th { width: 40px; height: 100px; border:1px solid #000; } tabl
Form表单中单选按钮和复选框值得传递
第一单选按钮: Male Female 如下图: 第二复选框: I have a bike I have a car 如下图: 单选按钮(Radio Buttons)是通过name属性来分组的,也就是说必须使用相同的name,radio才会形成单选,如上面的例子,Male和Female的radio的name属性都是sex。如果name不同,是不具备单选这个效