小弟现在做的是购物车
如图显示的是1.
我想修改为2.
然后用js取到刚输入的值返回给jsp..
然后立即显示出新的价格..
求救

解决方案 »

  1.   

    你这样觉得很好吗?为什么要修改数量了,立马把价格改过来呀?
    是不是数量越多, 折扣越大?其实你应该换一个思路:把折扣在页面加载时就放在页面上。这样,在用户修改数量时,直接从页面上得到价格。商品价格:<span id="span1" old='760' >760<span>
    商品数量:<input id='txt1' type='text' onchange='textChange(this)' />function calc(num){
        if(num<=10){
            return 1;
        }
        if(num<=100)
            return 0.95;
        if(num<=500)
            return 0.8;
        return 0.75;
    }function textChange(obj){
        if(isNaN(obj.value)){
            return;
        }
        var disCount=calc(obj.value);
        var span1 = document.getElementById("span1");
        var oldPrice=parseInt(span1.getAttribute("old"));
        document.getElementById("span1").innerHTML=oldPrice*disCount;
    }
    (上面的代码,全是手写,没有验证过,如有小问题请楼主自己改下)当然咯, 你实在想按你那个思路, 访问后台, 也行, 用jQuery的$.ajax请求再返回一个数据就是。 $.ajax的用法, 你搜索一下, 到处都是, 哥就不再多说了。
      

  2.   


    我就是要用户修改数量在页面上得到价钱的吖不是吗?请问calc(num)这个函数要应用在哪个地方呢?
      

  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"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" type="text/javascript"></script>
    <style type="text/css">
    </style>
    <script type="text/javascript">
        //计算折扣
        function calc(num){
            if(num<=10)
                return 1;
            if(num<=100)
                return 0.95;
            if(num<=500)
                return 0.8;
            return 0.75;
        }
        //文本改变时事件
        function textChange(obj){
            var disCount=calc(obj.value);
            var span1 = document.getElementById("span1");
            var oldPrice=parseInt(span1.getAttribute("old"));
            document.getElementById("span1").innerHTML=oldPrice*disCount;
        }
        
        //只允许输入数字    
        function checkKeyForInt(value, e) {  
            var isOK = false;  
            var key = window.event ? e.keyCode : e.which;  
            if ((key > 95 && key < 106) ||                  //小键盘上的0到9  
            (key > 47 && key < 60) ||                   //大键盘上的0到9  
            key == 8 || key == 9 || key == 46 || key == 37 || key == 39     //不影响正常编辑键的使用(8:BackSpace;9:Tab;46:Delete;37:Left;39:Right)  
        ) {  
                isOK = true;  
            } else {  
                if (window.event) //IE    
                {  
                    e.returnValue = false;   //event.returnValue=false 效果相同.    
                }  
                else //Firefox    
                {  
                    e.preventDefault();  
                }  
            }  
            return isOK;  
        }
    </script>
    </head> 
    <body>
    商品价格:<span id="span1" old='760' >760</span>
    商品数量:<input id='txt1' type='text' onkeyup='textChange(this)' onkeydown="checkKeyForInt(this.value,event)" style="ime-mode: disabled" />
    </body> 
    </html>
    这次验证过了,你自己试试, 保存为 html文件, 再打开就是了。