| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 631 人关注过本帖
标题:不要让我对这个论坛失望了,真没人懂的吗?
只看楼主 加入收藏
yao
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-6-10
收藏
 问题点数:0 回复次数:4 
不要让我对这个论坛失望了,真没人懂的吗?
这个函数到底错在哪了function compare(){ var iCount = 0; var strQuery = ""; var asaa; var asaa1; var asaa2; asaa1=document.form1.chk_pid.length; asaa2=document.form2.chk_pid2.length; asaa=asaa1+asaa2; for(var i = 0; i < asaa;i++){ if((document.form1.chk_pid[i].checked == true)||(document.form2.chk_pid2[i].checked == true)){ iCount++; if(iCount>12){ alert("不能选择超过十二个产品进行比较!"); return false; } strQuery = strQuery + "id="+document.form1.chk_pid[i].value+"&"+document.form2.chk_pid2[i].value+"&"; } } if(iCount==0){ alert("请先选择产品进行比较!"); return false; } if(strQuery!=""){ window.open('bijiao.asp?'+strQuery,'',''); } } 错误提示:document.form1.chk_pid[...].checked为空或不是对象 贴上全部代码请高手帮我,谢谢了 <!--#include file="conn.asp"--> <!--#include file="config.asp"--> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <%=request("pazhid")%> <%set rs=server.CreateObject("adodb.recordset") rs.open "select * from peizhi where xianzhe=1 and pazhid='"&request("pazhid")&"'",conn,1,1 if rs.eof And rs.bof then Response.Write "<p align='center' class='contents'> 数据库中暂时无数据!</p>" %><%else%><form name="form1" action="" method="post"> <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#71AAD5"> <tr bgcolor="#FFFFFF"> <td>商品类别</td> <td>商品名称</td> <td>商品型号</td> <td>普通价格</td> <td>会员价格</td> <td>vip价格</td> <td>选择我要的配置 </td> </tr><% do while not rs.eof%> <tr bgcolor="#FFFFFF"><td><%=rs("sorts")%></td> <td><%=rs("name")%></td> <td><%=rs("type")%></td> <td><%=rs("price1")%></td> <td><%=rs("price2")%></td> <td><%=rs("vipprice")%></td><td> <input name="chk_pid" type="checkbox" value="<%=rs("id") %>" checked > </td> </tr> <% rs.movenext loop%> <%rs.close set rs=nothing end if %></table></form> <br><form name="form2" action="" method="post"> <%=request("pazhid")%>可选配置 <%set rs=server.CreateObject("adodb.recordset") rs.open "select * from peizhi where xianzhe=2 and pazhid='"&request("pazhid")&"'",conn,1,1 if rs.eof And rs.bof then Response.Write "<p align='center' class='contents'> 数据库中暂时无数据!</p>" %><%else%> <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#71AAD5"> <tr bgcolor="#FFFFFF"> <td>商品类别</td> <td>商品名称</td> <td>商品型号</td> <td>普通价格</td> <td>会员价格</td> <td>vip价格</td><td>选择我要的配置 </td> </tr><% do while not rs.eof%> <tr bgcolor="#FFFFFF"> <td><%=rs("sorts")%></td> <td><%=rs("name")%></td> <td><%=rs("type")%></td> <td><%=rs("price1")%></td> <td><%=rs("price2")%></td> <td><%=rs("vipprice")%></td><td><input name="chk_pid2" type="checkbox" value="<%=rs("id") %>"></td> </tr> <% rs.movenext loop%> <%rs.close set rs=nothing end if %></table></form> </span> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"><a href="javascript:compare();">我自己想要的配置</a></td> </tr> </table><SCRIPT language="jscript"> function compare(){ var iCount = 0; var strQuery = ""; var asaa; var asaa1; var asaa2; asaa1=document.form1.chk_pid.length; asaa2=document.form2.chk_pid2.length; asaa=asaa1+asaa2; document.form2.chk_pid2.length; for(var i = 0; i < asaa;i++){ if((document.form1.chk_pid[i].checked == true)||(document.form2.chk_pid2[i].checked == true)){ iCount++; if(iCount>12){ alert("不能选择超过十二个产品进行比较!"); return false; } strQuery = strQuery + "id="+document.form1.chk_pid[i].value+"&"+document.form2.chk_pid2[i].value+"&"; } } if(iCount==0){ alert("请先选择产品进行比较!"); return false; } if(strQuery!=""){ window.open('bijiao.asp?'+strQuery,'',''); } } </script>
搜索更多相关主题的帖子: 失望 
2005-06-11 07:20
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
document.form1.chk_pid[i].checked 这种写法就有错误,chk_pid本身就不是数组。这样写就会导致楼主的错误。
2005-06-11 09:39
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
如果说分页选择的话设定了每页记录个数,可以在每个checkbox里添加OnClick事件处理函数得到选择的值,当点击按钮时再进行判断用户选择了那个。
2005-06-11 09:42
yao
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-6-10
收藏
得分:0 
chk_pid本来就是数组的,因为如果我只用一个表单form1的话,它就行,问题是我要两个表单的数据,而两个表单就出错了,
2005-06-11 11:32
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
楼主这种写法个人认为容易出错,分页个数的设定前提是知道每页的记录数。然后在页面的初始化的JavaScript函数里给一个用来记录的全局数组初始化元素个数,这个数组元素个数跟每页的记录数是一样的。再在每个checkbox的onselectstart事件处理函数里得到对应的checkbox的value来赋给数组,当点击按钮提交时只要判断数组里多少个元素有值即可。
2005-06-11 23:17
快速回复:不要让我对这个论坛失望了,真没人懂的吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040819 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved