在改别人的代码的时候,看到使用onpropertychange进行文本框监测,首先代码在兼容性比较弱。解决兼容性问题可以采用HTML5标准事件oninput与ompropertychange事件(IE),意思就是在文本框上进行二个事件,不同的浏览器机制触发不同的机制
<asp:TextBox ID="txtSPLDCGZL_J" runat="server" onpropertychange="cal(this)" oninput="cal(this)" dataoption="txtSPLXJ_J" Style="ime-mode: Disabled"></asp:TextBox>
//<!--dataoption表示要累加在哪一个文本上面即和数位置处-->
oninput
Firefox, Google Chrome, Opera, Safari, Internet Explorer from version 9
onpropertychange
Internet Explorer
另个在进行输入实时判断时,写了很多代码,简单进行一下重写
根据上图的结构特点进行不同文本框的赋值改造
事先实时计算合计:
function cal(obj){
var sum = 0;
var objId = $(obj).attr("dataoption"); //获取动态变化需要计算的文本框ID
if(objID==undefined) return; //判断是否到达求和顶端
var objArray = $("input[dataoption='" + objId + "']");//获取计算文本框有关联的文本框
objArray.each(function() {//求和
if ($(this).val() != "") {
sum += parseInt($(this).val());
}
});
$("#" + objId).val(sum);//赋值
cal($("#"+objId ).attr('dataoption')) //进行递归螺旋求和
}