如何获取javascript addeventlistener输入的返回值

时间:2019-03-05 10:29:15

标签: javascript return-value addeventlistener

我尝试为bmi计算器编写代码。

我希望代码段侦听html输入字段。如果有人在输入字段中输入数字,则输入的内容应立即显示在屏幕上。但!用输入我要计算。如果我在函数中写了 返回结果 ,我会收到一个错误:

如何使用返回值?

有人解决方案吗?

工作:

document.getElementById("formInputBodySize").addEventListener("input", fBodySize);

function fBodySize() {
    let arrBodySize = [];
    arrBodySize.push(this.value);

    let res = Number(arrBodySize[arrBodySize.length - 1]);

    document.getElementById('titleWeight').innerText = res;
}

我尝试:

不起作用:

document.getElementById("formInputBodySize").addEventListener("input", fBodySize);

function fBodySize() {
    let arrBodySize = [];
    arrBodySize.push(this.value);

    let res = Number(arrBodySize[arrBodySize.length - 1]);

    return res;
}

let result = fBodySize() + 10;

document.getElementById('titleWeight').innerText = result;

3 个答案:

答案 0 :(得分:0)

几次重读您的问题后,我认为您的意思是:

document.getElementById("formInputBodySize").addEventListener("input", fBodySize);
let arrBodySize = [];
function fBodySize() {
  let size = this.value;
  size = isNaN(size) || size.trim()==""? 0: +size; // make it number
  if (size) {
    arrBodySize.push(size);
    document.getElementById('titleWeight').innerText = size+10;
  }
  else document.getElementById('titleWeight').innerText = "";
}
Body size:<input type="text" id="formInputBodySize" /> Title weight: <span id="titleWeight"></span>

答案 1 :(得分:0)

我认为我的问题解释错了吗?我想要一个简单的解决方案,但它不起作用:

document.getElementById('formInputBodySize').addEventListener('input', fBodySize);
document.getElementById('formInputWeight').addEventListener('input', fWeight);

function fBodySize() {
    return this.value;
}

function fWeight() {
    return this.value;
}

document.getElementById('formInputBmi').value = fBodySize() / (fWeight() * fWeight());

对不起,我英语不好。我的母语是德语:-)

答案 2 :(得分:-1)

<input type="number" id="formInputBodySize"  
oninput="fBodySize(this.value)">

<script>

function fBodySize(elInput) {
let arrBodySize = [];
arrBodySize.push(elInput);

let res = Number(arrBodySize[arrBodySize.length - 1]);

document.getElementById('titleWeight').innerText = res;
}

</script>