使用“*”运算符在输入内部进行乘法运算

时间:2018-02-05 22:35:18

标签: javascript arrays split

我正在尝试将input输入的乘法替换为其解决方案。

基本上,当您在3*3中输入input时,我希望我的javascript代码可以3*3替换9

可能不是很难获得但我在这里使用javascript的总菜鸟。到目前为止,我得到了这个,但我应该错过一个关键点!

感谢您的帮助:)

function multiply() {
  var string = document.getElementById("mult").value;
  var array = string.split("*");
  var res = Number(array[0]*array[1]);
  document.getElementById("res").value = res;
}
input{width:80px; text-align:right;}
input[readonly]{border:0;}
entrer: <input type="text" id="mult" onblur="multiply()">
<br>result: <input type="text" id="res" readonly>

1 个答案:

答案 0 :(得分:2)

您的代码实际上就像现在一样。只需确保在输入等式后输入字段中的标签,您就会看到它完成其工作。那是因为你的代码在blur事件上运行,这是焦点离开元素的时候。

但是,就转换代码而言:

Number(array[0]*array[1])

尝试转换array[0]array[1]的产品,当你需要的是先将每个数组值转换为数字然后进行数学计算。

Number(array[0]) * Number(array[1])

现在,您只需将Number()添加到需要转换的每个值,而不是+

+array[0] * +array[1]

但是,实际上,只要你尝试对字符串进行乘法,除法或减法,它们就会自动转换为数字,所以你真的不需要这里。

最后,由于您只是显示结果并且不希望用户能够修改它,只需将其放入常规元素中,例如span而不是表单字段元素必须设置为readonly。表单字段主要用于收集信息,而不是显示信息。当您使用非表单字段元素时,不使用value属性,使用.textContent(当有直文时)或.innerHTML(当字符串包含时)要解析的HTML。)

function multiply() {
  var string = document.getElementById("mult").value;
  var array = string.split("*");
  var res = array[0] * array[1];
  document.getElementById("res").textContent = res;
}
input{width:80px; text-align:right;}
input[readonly]{border:0;}
entrer: <input type="text" id="mult" onblur="multiply()">
<br>result: <span id="res"></span>