form关于checkbox的键值匹配问题

问题描述

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不匹配的 谢谢!

解决方案

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

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=

解决方案二:

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

解决方案三:

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

时间: 2024-11-03 13:05:32

form关于checkbox的键值匹配问题的相关文章

键值编码 Key-Value Coding Programming Guide

1,什么是Key-Value Coding? Key-Value Coding是一种间接访问对象属性的机制,使用字符串标识属性,而不是通过调用实例变量的访问方法.其使用的方法基本都声明自NSKeyValueCoding协议,并被NSObject实现. Key-Value Coding支持对象属性,也支持标量类型和结构类型.非对象参数和返回类型被自动包装和解包装. NSKeyValueCoding定义的方法有: 获得属性值的方法:     – valueForKey:     – valueFor

我点击TreeView获取到的是一个数组,判断GridView的DataKeys值是否和这个数组里面的值匹配,如果匹配,则这个Datakeys这一行的某个Che

问题描述 求教:我点击TreeView获取到的是一个数组,判断GridView的DataKeys值是否和这个数组里面的值匹配,如果匹配,则这个Datakeys这一行的某个CheckBox为选中状态 解决方案

对象-mvc4 +easy ui form load 标签下的值

问题描述 mvc4 +easy ui form load 标签下的值 刚刚遇到一个问题 ,实在不知怎么用好的方法解决, @Html.LabelFor(m => m.WareHouseM.WareHouseName) @Html.TextBoxFor(m => m.WareHouseM.WareHouseName new { @class = ""easyui-textbox"" required = ""true""

context:property-placeholder 不能解析xml中配置的键值

问题描述 context:property-placeholder 不能解析xml中配置的键值 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 9 in XML document from URL [file:/E:/PT/Installtomcat/webapps/SSHTest1/WEB-INF/classes/applicationContext.xml] is invalid; nes

jquery获取form表单input元素值的简单实例_jquery

一般取值方法 $("#id").val(); $("#id").attr("value");  //其中value是元素的属性名如<s:textfield  id="cifName" key="cifName"   name="#request.consBean.cifName" />的id,key,name属性.取到的值是属性后对应双引号里面的字符. function sa

jQuery获取checkbox选中的值_jquery

1.问题背景 有几个多选框,选择其中的几个,获取选中的值 2.设计结果如下图所示: 3.设计源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

求一个正则表达式 替换json字符串中的指定键值对

问题描述 {"name":"zhangsan","id":1042732,"type":"2","status":0,"password":"123456789"}如何把其中的type 键值替换成空 我需要一个{"name":"zhangsan","id":1042732,"st

php中怎么搜索相关联数组键值及获取之_php技巧

1.搜索关联数组键如果在一个数组中找到一个指定的键,函数array_key_exists()返回TRUE,否则返回FALSE.其 形式如下:boolean array_key_exists(mixed key, array array) 下面的例子将在数组键中搜索Ohio,如果找到,将输出这个州加入美国联邦政府的育关信息:$state["Delaware"]="December 7,1787";$state["Pennsylvania"]=&qu

php使用preg_replace实现正则表达式的搜索结果和替换对应数组键值

1.preg_replace的用途及使用方法 用途:执行正则表达式的搜索和替换: 正则替换 preg_replace() 函数用于正则表达式的搜索和替换. 语法: mixed preg_replace( mixed pattern, mixed replacement, mixed subject [, int limit ] ) 例 1. 逆向引用后面紧接着数字的用法  代码如下 复制代码 <?php $string = "April 15, 2003"; $pattern =