Javascript eval() 在同一字段中输入字段和输出答案
Javascript eval() input field and output answer in same field
我正在学习,想知道是否有办法做到这一点,假设我有 HTML 输入字段:
<input type=text id="input">
附近我要一个按钮:
<button id="equal">=</button>
我想写 javaScript 来评估那个文本字段中的语句(如果它是一个像“2+3”“6/2”等的等式)并用答案替换那个语句方程。我尝试了什么:
var equal = document.querySelector("#equal");
var input = document.querySelector("#input");
equal.addEventListener('click', function () {
eval(input.value) += input.innerText;
});
我已经只输入了 1234567890 和 /*-+
如果有办法,我将非常感谢有解释的答案,最近才开始 javaScript 所以它对我来说仍然像一片黑暗的森林,但我确实希望能更好地理解它。 :)
您只需要将 eval(input.value) += input.innerText
换成 input.value = eval(input.value)
var equal = document.querySelector("#equal");
var input = document.querySelector("#input");
equal.addEventListener('click', function() {
input.value = eval(input.value);
});
<input type=text id="input">
<button id="equal">=</button>
此外,建议使用 document.getElementById
而不是 document.querySelector
,但两者差别不大(主要是与旧版浏览器的兼容性)。 Read more
您希望输入表达式的地方与显示的地方不同 =22=]它:
<!DOCTYPE html>
<html>
<body>
<button id="evaluate">Get answer</button>
<input id="input" />
<p id="result">waiting for answer...</p>
<script>
var evaluate = document.getElementById("evaluate");
var input = document.getElementById("input");
var result = document.getElementById("result");
evaluate.addEventListener('click', function () {
try {
result.textContent = eval(input.value);
}
catch (error) {
result.textContent = "waiting for answer...";
}
});
</script>
</body>
</html>
我正在学习,想知道是否有办法做到这一点,假设我有 HTML 输入字段:
<input type=text id="input">
附近我要一个按钮:
<button id="equal">=</button>
我想写 javaScript 来评估那个文本字段中的语句(如果它是一个像“2+3”“6/2”等的等式)并用答案替换那个语句方程。我尝试了什么:
var equal = document.querySelector("#equal");
var input = document.querySelector("#input");
equal.addEventListener('click', function () {
eval(input.value) += input.innerText;
});
我已经只输入了 1234567890 和 /*-+ 如果有办法,我将非常感谢有解释的答案,最近才开始 javaScript 所以它对我来说仍然像一片黑暗的森林,但我确实希望能更好地理解它。 :)
您只需要将 eval(input.value) += input.innerText
换成 input.value = eval(input.value)
var equal = document.querySelector("#equal");
var input = document.querySelector("#input");
equal.addEventListener('click', function() {
input.value = eval(input.value);
});
<input type=text id="input">
<button id="equal">=</button>
此外,建议使用 document.getElementById
而不是 document.querySelector
,但两者差别不大(主要是与旧版浏览器的兼容性)。 Read more
您希望输入表达式的地方与显示的地方不同 =22=]它:
<!DOCTYPE html>
<html>
<body>
<button id="evaluate">Get answer</button>
<input id="input" />
<p id="result">waiting for answer...</p>
<script>
var evaluate = document.getElementById("evaluate");
var input = document.getElementById("input");
var result = document.getElementById("result");
evaluate.addEventListener('click', function () {
try {
result.textContent = eval(input.value);
}
catch (error) {
result.textContent = "waiting for answer...";
}
});
</script>
</body>
</html>