日期:2014-05-16  浏览次数:20516 次

js动态求值有困难重重
以下代码是计算,第三个文本框的取值,若其值大于前2个之和,便警告一下。
JScript code
<script type="text/javascript">
function makePlus(t1,t2,t3){
    var n1=Math.abs(document.getElementById(t1).value);
    var n2=Math.abs(document.getElementById(t2).value)+Math.abs(document.getElementById(t3).value);
    if(n1>n2){
            alert('数量输入有误');
    }
}

</script>
<input id="t1" name="tt1" value="12">
<input id="t2" name="tt2" value="122">
<input id="t3" name="tt3" onChange="makePlus('t1','t2','t3')">


我的问题来了?
第一,其中t3是动态生成的(js动态生成行),其有19个,最后要提交给数据库
JScript code
<input id="t3[]" name="tt3[]" onChange="makePlus('t1','t2','t3')">


此种情况的js如何写啊?请指教一番。
第二,js数值型是哪个,如同php的int,我手册未找到,用parseInt未成功。故而被迫使用了math.abs。你有好的方法吗?就是2个数计算。

------解决方案--------------------
parseInt就OK啊。。还有就是你最好限定一下文本框的输入
------解决方案--------------------
动态生成行就不要用id了,用this指示当前发生事件的控件,然后即相邻元素,父元素等取到你想要的值即可。具体怎么写要结合具体的HTML