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> 展开
<!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> 展开
3个回答
展开全部
因为运算动作 setTotal 放在了 加减 按钮的 click 事件中
若你想通过改变数量来触发 setTotal 那可以 尝试 定义 input元素的 失去焦点 blur 事件来触发 setTotal
若你想通过改变数量来触发 setTotal 那可以 尝试 定义 input元素的 失去焦点 blur 事件来触发 setTotal
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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>
<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>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
小类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");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询