var forward="window.location.href='JavaScript:joincart()'"; 改为:var forward='window.location.href=' + joincart();
解决方案 »
- java for循环一百万次为什么报错了
- struts2的action不能跳转到JSP页面
- JSP中响应关闭浏览器事件并向指定URL发送请求
- 关于EXTJS的一个小问题
- call.addParameter("arg1", qn, ParameterMode.IN)是什么意思,要先引用什么包吗?
- ibatis queryForList方法取值问题
- 我只能在{tomcat_home}/webapps/jsp_examples下运行jsp目录,怎么换个目录?谢谢
- jbuilder9中CMP的开发,import schema from database后出现的表是空的??
- jsp window.open Unload struts 棘手问题
- myeclipse的错误java.lang.NullPointerException
- struts中的validator验证框架为什么显示null?
- 配置连接池问题
然后写一个js<script>
window.location.href='JavaScript:join()'
</script>
看看行否!
<input type="button" value="结账" onclick="joincart()"/>
难道不行吗?
这样,我把代码贴一下吧
var xmlhttp;
//查看购物车的ajax
function sele()
{
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=callback;
xmlhttp.open("post","join.do?isbn=sele",true);
xmlhttp.send(null);
}
//向购物车内添加数据的AJAX
function join()
{
var isbn=document.getElementById("isbn");
var is=isbn.innerHTML;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=callback;
xmlhttp.open("post","join.do?isbn="+is,true);
xmlhttp.send(null);
}
function callback()
{
var word=document.getElementById("word");
word.innerHTML="购物车内商品";
//得到两个div对象,并且修改显示方式
var onebook=document.getElementById("onebook");
onebook.style.display="none";
var joinbook=document.getElementById("joinbook");
joinbook.style.dispaly="block";
var info=xmlhttp.responseText;
//定义一个变量用于定义总价
var sumprice=0;
if(info=="购物车内没有任何商品!")
{
joinbook.innerHTML="购物车内没有任何商品!";
}else
{
var forward="window.location.href='JavaScript:joincart()'";
//目前已经得到值
//如果info包含&符号,那么说明,有2个或2个以上的书籍信息在session中
//如果info中不包含&符号,那么说明,只有一个书籍信息在session中
if(info.indexOf("&")!=-1)
{
var books=info.split("&");
//定义一个变量,用于存放将要innerHTML里的字符串
var ss='<table cellSpacing=0 cellPadding=0 width=590 border=1><tr align="center"><td>书籍名称</td><td>数量</td><td>价格</td><td>小计</td></tr>';
for(var i=0;i<books.length-1;i=i+1)
{
var bookone=books[i].split("|");
ss+='<tr align="center"><td>'+bookone[0]+'</td><td>'+bookone[2]+'</td><td>'+bookone[1]+'</td><td>'+parseInt(bookone[2])*parseFloat(bookone[1])+'</td></tr>';
sumprice+=parseInt(bookone[2])*parseFloat(bookone[1]);
}
ss+='<tr><td colspan="4" align="right">'+sumprice+'</td></tr></table><br/><br/>';
ss+='<h4 align="center"><a href="disbooks.do">继续购物</a><br /><br /><input type="button" value="结账" onclick="'+forward+'"/></h4>';
joinbook.innerHTML=ss;
}else
{
var sigle='<table cellSpacing=0 cellPadding=0 width=590 border=1><tr align="center"><td>书籍名称</td><td>数量</td><td>价格</td><td>小计</td></tr>';
var book1=info.split("|");
sigle+='<tr align="center"><td>'+book1[0]+'</td><td>'+book1[2]+'</td><td>'+book1[1]+'</td><td>'+parseInt(book1[2])*parseFloat(book1[1])+'</td></tr>';
sumprice+=parseInt(book1[2])*parseFloat(book1[1]);
sigle+='<tr><td colspan="4" align="right"><b>总计</b>:'+sumprice+'</td></tr></table><br/><br/>';
sigle+='<h4 align="center"><a href="disbooks.do">继续购物</a><br /><br /><input type="button" value="结账" onclick="'+forward+'"/></h4>';
joinbook.innerHTML=sigle;
}
}
function joincart()
{
alert("ddddd");
var joinbook=document.getElementById("joinbook");
joinbook.style.display="none";
var card=document.getElementById("card");
card.style.display="block";
}
}
试试
var forward="joincart();";
为什么会发生这个事情
' <h4 align="center"> <a href="disbooks.do">继续购物 </a> <br /> <br /> <input type="button" value="结账" onclick="'+forward+'"/> </h4>';
这个字符串你使用了'做为外层边界
而上面你使用'作为普通字符串.明白了吧
var forward="window.location.href='JavaScript:joincart()'"; 你一会用'做外边界,一会用"做外边界.......不要这样.选"做外边界比较好些其实.
' <h4 align="center"> <a href="disbooks.do">继续购物 </a> <br /> <br /> <input type="button" value="结账" onclick="window.location.href='JavaScript:joincart()'"/> </h4>';你看看上面的匹配,浏览器最先找到了' <h4 align="center"> <a href="disbooks.do">继续购物 </a> <br /> <br /> <input type="button" value="结账" onclick="window.location.href='
然后又找到了'"/> </h4>'
同时这个地方你又是dhtml,浏览器会做,隐身的html对象装换,兼容了一些错误
建议先把模版做好,让后在填值,不要大量的innerHTML=具体的html代码/
joincart is not defined
javascript:joincart()()()
结贴很简单,点击
我要提问,帖子加分,结帖去.管理菜单
中的结贴去按钮,右侧可以为回帖人分派分数,分完分后,点击确认 即可.好的信誉,赢来更多的人气.
我没有再使用字符串拼接的方式去向div里添加内容
而是把有问题的内容直接写在页面的一个div里面,load的时候隐藏,而在javascript里面再显示