问题描述
- 如何获取同一个form表单里的对象的value值呢
-
<input type="hidden" id="district<%=i%>" name="district" > <script> document.getElementById("district"+i).value=document.getElementById("shuru"+i).value </script>
如题,我想将hidden里的value 设置为上面id为shuru的的值
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="Db.Db"%> <%@page import="java.text.SimpleDateFormat"%> <%@ page import="java.sql.*"%> <%@ page import="java.util.Date"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!-- 修改前--> <% request.setCharacterEncoding("utf-8"); String uaddr = null; int uid = 0; String uname = request.getParameter("uname"); String[] strgid = request.getParameterValues("addOrders"); Connection conn = null; Statement stmt = null; Statement stmt1 = null; ResultSet rs = null; ResultSet rs1 = null; conn = Db.getconn(); stmt = conn.createStatement(); stmt1 = conn.createStatement(); System.out.println(uname); rs1 = stmt1.executeQuery("select * from user where uname = '"+ uname + "' "); if (rs1.next()) { uaddr = rs1.getString("uaddr"); uid = rs1.getInt("uid"); } %> <% SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowTime = sdf.format(new Date()); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>购物车</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <form method="post" action="servlet/AddOrdersServlet" name="numSender"> <input type="hidden" name="uid" value="<%=uid%>"> <input type="hidden" name="uname" value="<%=uname%>"> <input type="hidden" name="oaddr" value="<%=uaddr%>"> <input type="hidden" name="dealtime" value="<%=nowTime%>"> <!-----script放到循环外-------> <script type="text/javascript"> function jianC(i,p1) { /*定义变量K,用商品数量输入框里面的数字赋值*/ var k =document.getElementById("shuru"+i);//获取数量输入控件 var v=parseInt(k.value,10); v--; /*点击-号按钮会递减商品价格*/ if (v < 1) { alert("亲,商品数量不能小于1!"); return//超限退出 } k.value=v; k.setAttribute('sum',v*p1)//将这个物品的小计放到自定义属性sum中,方便计算总价 setTotal()//重新设置总价钱 } function adddC(i,p1) { /*点击+号按钮会递加商品数量*/ var k =document.getElementById("shuru"+i);//获取数量输入控件 var v=parseInt(k.value,10); v++; if (v > 99) { alert("您所选择的数量已经到达库存上限!"); return//超限退出 } k.value=v; k.setAttribute('sum',v*p1)//将这个物品的小计放到自定义属性sum中,方便计算总价 setTotal()//重新设置总价钱 } function setTotal(){//设置总价 var o=document.getElementsByName('init_num');//获取数量输入框 var sum=0; for(var i=0;i<o.length;i++)sum+=parseInt(o[i].getAttribute('sum')||0) document.getElementById("cost").value = sum + "元" } function sendNum() { alert("xxxxxx"); document.getElementById("district"+i).value=document.getElementById("shuru"+i).value; alert("aaaaaaaaaaa"); } </script> <table border=1 align="center"> <tr> <td colspan="4" align="center">购物车</td> </tr> <tr> <td align="center">商品</td> <td align="center">数量</td> <td align="center" colspan="1">操作</td> </tr> <% for (int i = 0; i < strgid.length; i++) { int gid = Integer.parseInt(strgid[i]); rs = stmt.executeQuery("select * from goods where gid =" + gid); if (rs.next()) { String strgprice = rs.getString("gprice"); Double p =Double.parseDouble(strgprice); // System.out.println("p="+p); %> <!-- ss --> <tr> <td><img src="<%=rs.getString("gpicture")%>"> <%=rs.getString("gname")%></td> <td><input type="button" id="jian" onClick="jianC(<%=i%>,<%=p%>)" value="-"><!-----传入循环i和单价-------> <input id="shuru<%=i%>" name="init_num" class="input_text" type="text" value="0" size="3"><!-----id连接上i变为唯一-------> <input type="hidden" id="district<%=i%>" name="district" > <script> document.getElementById("district"+i).value=document.getElementById("shuru"+i).value </script> <input type="button" id="addd" onClick="adddC(<%=i%>,<%=p%>)" value="+"><!-----传入循环i和单价-------></td> <td> <input type="checkbox" name="gid" value="<%=gid %>"> </td> </tr> <% } } rs.close(); rs1.close(); stmt.close(); stmt1.close(); conn.close(); %> <tr> <td colspan="4" align="center"> 总价:<input id="cost" class="input_text" type="text" value="0" size="3" value="0"></td> </tr> <tr> <td colspan="5" align="center"> <button id="buy_anniu" type="submit" onClick="sendNum()">提交</button> <button type="reset">重置</button> </td> </tr> </table> </form> </body> </html>
解决方案
使用jquery
解决方案二:
使用jQuery $('#shuru').val() 把前面获得值复制到value上就行了
解决方案三:
<input id="shuru" name="init_num" class="input_text" type="text" value="0" size="3">
<input type="hidden" id="district" name="district" value="" >
<script>
document.getElementById('district').value=document.getElementById('shuru').value
</script>
id唯一可以使用上面的代码,如果不以为就不好搞了,要通过DOM关系来获取对象。
解决方案四:
在提交的时候onclink一下,然后获取id为shuru的值,并把获取到的值传给district。
解决方案五:
注意id一定不要重复
<input id="shuru<%=i%>" name="init_num" class="input_text" type="text" value="0" size="3"><!-----id连接上i变为唯一------->
<input type="hidden" id="district<%=i%>" name="district" value="" ><!-----id连接上i变为唯一------->
传入循环遍历使id不重复。然后document.getElementById("district"+i)就可以获取到对应的隐藏控件设置值了,如下
function jianC(i,p1) {
/*定义变量K,用商品数量输入框里面的数字赋值*/
var k =document.getElementById("shuru"+i);//获取数量输入控件
var v=parseInt(k.value,10);
v--;
/*点击-号按钮会递减商品价格*/
if (v < 1) {
alert("亲,商品数量不能小于1!");
return//超限退出
}
document.getElementById("district"+i).value=v;///////////////设置值
k.value=v;
k.setAttribute('sum',v*p1)//将这个物品的小计放到自定义属性sum中,方便计算总价
setTotal()//重新设置总价钱
}
function adddC(i,p1) {
/*点击+号按钮会递加商品数量*/
var k =document.getElementById("shuru"+i);//获取数量输入控件
var v=parseInt(k.value,10);
v++;
if (v > 99) {
alert("您所选择的数量已经到达库存上限!");
return//超限退出
}
document.getElementById("district"+i).value=v;////////////设置值
k.value=v;
k.setAttribute('sum',v*p1)//将这个物品的小计放到自定义属性sum中,方便计算总价
setTotal()//重新设置总价钱
}
时间: 2025-01-20 09:07:11