js自动计算

现在可以实现加减数量,为什么直接输入数量就不能计算,只能按加减才改变呢<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitiona... 现在可以实现加减数量,为什么直接输入数量就不能计算,只能按加减才改变呢
<!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>
<title>jQuery实现购物车多物品数量的加减+总价计算</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script>
$(function(){
$(".add").click(function(){
var t=$(this).parent().find('input[class*=text_box]');
t.val(parseInt(t.val())+1)
setTotal();
})
$(".min").click(function(){
var t=$(this).parent().find('input[class*=text_box]');
t.val(parseInt(t.val())-1)
if(parseInt(t.val())<0){
t.val(0);
}
setTotal();
})
function setTotal(){
var s=0;
$("#tab td").each(function(){
s+=parseInt($(this).find('input[class*=text_box]').val())*parseFloat($(this).find('span[class*=price]').text());
});
$("#total").html(s.toFixed(2));
}
setTotal();

})
</script>
</head>
<body>
<table id="tab">
<tr>
<td>
<span>单价:</span><span class="price">1.50</span>
<input class="min" name="" type="button" value="-" />
<input class="text_box" name="" type="text" value="1" />
<input class="add" name="" type="button" value="+" />
</td>
</tr>
<tr>
<td>
<span>单价:</span><span class="price">3.95</span>
<input class="min" name="" type="button" value="-" />
<input class="text_box" name="" type="text" value="1" />
<input class="add" name="" type="button" value="+" />
</td>
</tr>
</table>

<p>总价:<label id="total"></label></p>
</body>
</html>
展开
 我来答
tanmin4192
2014-12-23 · 超过23用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:49.4万
展开全部
因为运算动作 setTotal 放在了 加减 按钮的 click 事件中
若你想通过改变数量来触发 setTotal 那可以 尝试 定义 input元素的 失去焦点 blur 事件来触发 setTotal
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
她是我的小太阳
高粉答主

2015-11-04 · 醉心答题,欢迎关注
知道顶级答主
回答量:5.1万
采纳率:83%
帮助的人:8487万
展开全部
js实现自动计算
<HTML>
<HEAD>
<title>文本框内容的自动复制</title>
<SCRIPT LANGUAGE="JavaScript"><!-- hide from old browsers
function enfocus()
{
var t1 = document.forms[0].Data.value;
var t2 = document.forms[0].Data2.value;
var t3 = document.forms[0].Copy.value ;

if(t1!="" && t2!=""){
document.getElementById("copy").value = parseInt(t1) * parseInt(t2) ;
}
else {document.getElementById("copy").value = "";}
}
<!-- done hiding -->
</SCRIPT>
</HEAD>
<BODY onLoad="">
<CENTER><FORM>
value1: <INPUT TYPE="TEXT" SIZE=40 NAME="Data" onkeyup="enfocus()"><br>
value2: <INPUT TYPE="TEXT" SIZE=40 NAME="Data2" onkeyup="enfocus()"><br>

相乘: <INPUT TYPE="TEXT" SIZE=40 NAME="Copy" id="copy"><br>

</FORM></CENTER>
</body>
</html>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
w616141460
2015-10-12 · TA获得超过1596个赞
知道小有建树答主
回答量:490
采纳率:72%
帮助的人:78.2万
展开全部
  

  小类1-1<input name="s1" onblur="ct(this.name,0);"><br>
  小类1-2<input name="s1" onblur="ct(this.name,0);"><br>
  大类1<input name="sort" value="0" disabled><br>
  小类2-1<input name="s2" onblur="ct(this.name,1);"><br>
  小类2-2<input name="s2" onblur="ct(this.name,1);"><br>
  大类2<input name="sort" value="0" disabled><br>
  总<input id="total" value="0" disabled><br>
  <script>
  function ct(v,s){//s为第几个大类,编号从asp里获得写到input的onblur事件里,从0开始计数。
  a = document.getElementsByName(v);
  b = document.getElementsByName("sort");
  tmp=0;
  for(i=0;i<a.length;i++){
  if(a[i].value) tmp+=parseInt(a[i].value);
  }
  b[s].value=tmp;

  tmp=0;
  for(j=0;j<b.length;j++){
  if(b[j].value) tmp+=parseInt(b[j].value);
  }
  document.getElementById("total").value=tmp;
  }
  </script>
  =======================================
  ……
  同一大类的所有小类的name相同-》
  <input name="gradec_sm<%=i%>"
  所有大类的name相同-》
  <input name="gradec_big"
  <script>里的变量“s”不要改,
  b = document.getElementsByName("gradec_big");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式