例如,有A、B、C三个数值输入框和一个只读的输入框D,其中D输入框的值为A、B、C之和,当A、B、C中任意一个输入框的值发生改变时,D输入框也随之发生改变,请问用JS怎么实现?谢谢了先~
给一个简单实现
[code="java"]
<br> function changeFunc(){<br> var aValue = document.getElementById('A').value;<br> var bValue = document.getElementById('B').value;<br> var cValue = document.getElementById('C').value;<br> //<br> var dValue = parseInt(aValue) + parseInt(bValue) + parseInt(cValue);<br> document.getElementById('D').value = dValue;<br> }<br>
+
+
=
[/code]
[code="html"]
function change() { var textav = document.getElementById("texta").value; var textbv = document.getElementById("textb").value; var textcv = document.getElementById("textc").value; document.getElementById("textd").value=textav+textbv+textcv; }
A:
B:
C:
D:
[/code]
粗略的通过以上代码可以实现。不过需要将ABC输入框中的text增加数字验证。
[code="java"]
<br> /*禁止除数字之外的非法字符输入*/<br> function check(event){<br> if (!/[0-9]/.test(String.fromCharCode(event.keyCode)))<br> event.keyCode=0;<br> }<br> function sum(){<br> var A = document.getElementById("A").value;<br> var B = document.getElementById("B").value;<br> var C = document.getElementById("C").value;<br> if(A == ""){<br> A = 0;<br> }<br> if(B == ""){<br> B = 0;<br> }<br> if(C == ""){<br> C = 0;<br> }<br> var count = parseInt(A)+parseInt(B)+parseInt(C);<br> document.getElementById("D").value = count;<br> }<br>
A: onkeypress="check(event)" onchange="sum()"/>
B: onkeypress="check(event)" onchange="sum()"/>
C: onkeypress="check(event)" onchange="sum()"/>
D:
[/code]