我正在尝试将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>
答案 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>