java脚本函数问题

时间:2017-06-20 05:03:16

标签: javascript

我正在使用功能添加两个文本框,并希望在第三个文本框中显示结果。为此,我使用了两个功能。首先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;
&#13;
&#13;

3 个答案:

答案 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)

试试这段代码

&#13;
&#13;
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;
&#13;
&#13;