我正在使用功能添加两个文本框,并希望在第三个文本框中显示结果。为此,我使用了两个功能。首先getdata()
读取第一个文本框值,第二个getdata1()
读取第二个文本框值。我也使用onchange事件。但结果显示NaN
。请帮我。
这是我的代码
var a, b, c;
function getdata(txt) {
x = txt.value;
if (!isNaN(x)) {
a = parseInt(document.getElementById("txt").value);
} else {
alert("Input not valid");
txt.focus();
txt.value = "";
}
}
function getdata1(txt) {
x = txt.value;
if (!isNaN(x)) {
b = parseInt(document.getElementById("txt").value);
} else {
alert("Input not valid");
txt.focus();
txt.value = "";
}
}
function myFunction(s, t) {
var s = a;
var t = b;
var c = s + t;
document.getElementById("result").value = c;
}

<td><input type="text" name="txt[]" id="txt[]" onchange="getdata(this)" /></td>
<td><input type="text" name="txt[]" id="txt[]" onchange="getdata1(this)" /></td>
<td><input type="text" name="result" id="result" onfocus="myFunction()" /></td>
&#13;
答案 0 :(得分:0)
不要对不同的元素使用相同的id
值!使用x
值代替document.getElementById("txt").value
。
var a, b, c;
function TryParceData(src, old) {
x = src.value;
if (!isNaN(x)) {
return parseInt(x);
} else {
alert("Input not valid");
src.focus();
src.value = "";
return old;
}
}
function getdata(txt) {
a = TryParceData(txt, a);
myFunction();
}
function getdata1(txt) {
b = TryParceData(txt, b);
myFunction();
}
function myFunction(s, t) {
var s = a;
var t = b;
var c = s + t;
document.getElementById("result").value = c;
}
<input type="text" name="txt[]" onchange="getdata(this)" />
<input type="text" name="txt[]" onchange="getdata1(this)" />
<input type="text" name="result" id="result" onfocus="myFunction()" />
答案 1 :(得分:0)
首先,如果您有多个具有相同ID的元素,则第一个或最后一个将是您的选择器提取的唯一元素。其次,属性&#39; id&#39;被称为id,因为它为您的元素赋予了标识,这基本上意味着尽量不给每个元素赋予相同的标识。第三,你正在寻找NaN,因为你正在寻找一个带有id&#39; txt&#39;的元素。但是你的页面中没有(这个错误发生在你的parseInt部分)。您元素的ID为&#39; txt []&#39;。尝试将这些ID更改为&#39; txt1&#39;和&#39; txt2&#39;另一个并更改脚本。当你修复它时更新我。欢呼声
答案 2 :(得分:0)
试试这段代码
var a, b, c;
function getdata(txt) {
x = parseInt(txt.value);
if (!isNaN(x)) {
a = parseInt(document.getElementById("txt").value);
} else {
txt.focus();
txt.value = "";
}
}
function getdata1(txt) {
x = parseInt(txt.value);
if (!isNaN(x)) {
b = parseInt(document.getElementById("txt1").value);
} else {
txt.focus();
txt.value = "";
}
myFunction();
}
function myFunction() {
var c = a + b;
document.getElementById("result").value = c;
}
&#13;
<input type="text" id="txt" onblur="getdata(this)">
<input type="text" id="txt1" onblur="getdata1(this)">
<input type="text" id="result">
&#13;