该程序的目的是实现:用obj输入框用来记录 tmp1,tmp2和(实际中我的tmp输入框会有很多个,所以,我用last来记录某一tmp输入框在修改前的值;并且想将结果(所有输入值的总和)在tmp的onpropertychange中显示到obj输入框)function retsetMe(tmp) 用于处理用户的isNaN输入;
function recordlast(last, tmp) 记录tmp在修改前的值;
function calculate(obj, last, tmp) 计算,并将结果显示到obj输入库现将程序重贴一遍:<HTML>
<HEAD>
<script language="javascript">
function calculate(obj, last, tmp)
{
var oValue = obj.value;
var lValue = last.value;
var tValue = tmp.value;
if(tValue == ""){ tValue = 0; }
else
{ if(isNaN(tValue)) {tmp.value = 0; }
else
{ var ret = oValue - (lValue - tValue) ;
obj.value = ret;
}
}
}
function recordlast(last, tmp)
{
if(isNaN(tmp.value) || tmp.value=="") {last.value = 0;}
else
{
last.value = tmp.value;
}
tmp.select();
}
function retsetMe(tmp){
if(isNaN(tmp.value)){ tmp.value=0; }
}
</script>
</HEAD>
<body>
<form id="Form1">
obj:<INPUT id="obj" type="text" disabled name="obj" runat="server"> tmp:<INPUT id="last" disabled type="text"">
tmp1:<INPUT id="tmp1" onfocus="recordlast(last, this);" type="text" onchange="retsetMe(this);calculate(obj, last, this);"
value="0"> tmp2:<INPUT id="tmp2" onfocus="recordlast(last, this);" type="text" onchange="retsetMe(this);calculate(obj, last, this);"
value="0">
</form>
</body>
</HTML>
function recordlast(last, tmp) 记录tmp在修改前的值;
function calculate(obj, last, tmp) 计算,并将结果显示到obj输入库现将程序重贴一遍:<HTML>
<HEAD>
<script language="javascript">
function calculate(obj, last, tmp)
{
var oValue = obj.value;
var lValue = last.value;
var tValue = tmp.value;
if(tValue == ""){ tValue = 0; }
else
{ if(isNaN(tValue)) {tmp.value = 0; }
else
{ var ret = oValue - (lValue - tValue) ;
obj.value = ret;
}
}
}
function recordlast(last, tmp)
{
if(isNaN(tmp.value) || tmp.value=="") {last.value = 0;}
else
{
last.value = tmp.value;
}
tmp.select();
}
function retsetMe(tmp){
if(isNaN(tmp.value)){ tmp.value=0; }
}
</script>
</HEAD>
<body>
<form id="Form1">
obj:<INPUT id="obj" type="text" disabled name="obj" runat="server"> tmp:<INPUT id="last" disabled type="text"">
tmp1:<INPUT id="tmp1" onfocus="recordlast(last, this);" type="text" onchange="retsetMe(this);calculate(obj, last, this);"
value="0"> tmp2:<INPUT id="tmp2" onfocus="recordlast(last, this);" type="text" onchange="retsetMe(this);calculate(obj, last, this);"
value="0">
</form>
</body>
</HTML>
解决方案 »
- 一个网站调用另外一个网站的服务
- IE8 对 iframework 兼容的问题
- 两个iframe怎么出现无缝隙连接的问题
- MVP模式中,V可以直接访问M吗?
- 请问在搜索结果中继续找寻的设计思路是什么?
- 问一个DATALIST的控件格式的问题?哪位能帮帮我呀。
- 为varchar的子段,怎么查询时间?
- vs2008中使用水晶报表的打印功能,printcontrol.cab下载到主机后web.config如何配置?
- 在datagrid的模板列里显示别名,谢谢
- "<input type=hidden value="和"name=__VIEWSTATE>"之间的一堆乱码是什么?
- 这样的网站该要多少钱?
- 请教,修改加分页问题,十万火急啊
<!--
function add()
{
document.getElementById('c').value = Number(document.getElementById('a').value) + Number(document.getElementById('b').value);
}
//-->
</script>
<input type="text" id="a" onchange="add();" onkeypress="add();" onkeyup="add();"><input type="text" id="b" onchange="add();" onkeypress="add();" onkeyup="add();"><input type="text" id="c">
-----------------------------------------------------------
.aspx:
<script language=javascript>
function calculate(obj,tmp){
resetMe(tmp);
var ret=0;
var tmps=document.getElementById('Table1').getElementsByTagName("input");
for(var i=0; i<tmps.length; i++){ret = ret -(- tmps[i].value);}
obj.value=ret;
}function resetMe(tmp){
if(isNaN(tmp.value)){tmp.value=0}
}
</script>.vb
If Not IsPostBack Then
Dim script As String
script = "calculate(objs, this);"
tmp0.Attributes.Add("onpropertychange", script)
tmp1.Attributes.Add("onpropertychange", script)
... script = "this.select();"
tmp0.Attributes.Add("onfocus", script)
tmp1.Attributes.Add("onfocus", script)
End If
<INPUT type="text" id="tmp0" runat="server" value=0 maxlength=7>
<INPUT type="text" id="tmp1" runat="server" value=0 maxlength=7>