我有一个输入元素,在其值属性(即“3+5-6*8”)中保存字符串形式的
数学表达式
(即“3+5-6*8”)
我想评估该值,然后将其设置为输入元素的新值。
这是我的 JS 函数:
function evaluate() {
document.getElementById("userinput").value=eval(document.getElementById("userinput").value);
}
由于某种原因,这没有任何作用
据我所知,eval()
仅在参数为字符串时才有效;否则它将返回参数不变。
根据我制作输入标签的方式,输入元素的value属性的数据类型应该是字符串:
<input type="text" id="userinput" readonly="true">
出了什么问题?
最佳答案
您是否收到错误:Uncaught NotSupportedError:无法在“文档”上执行“评估”:提供的上下文节点为空。
?
问题是 evaluate
是一种不应被覆盖的关键字:https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript
所以我将该函数重命名为 foo
,它起作用了:http://jsfiddle.net/28sXE/1/
html:
<input type="text" id="userinput" />
<button onClick="foo()">do it</button>
js:
function foo() {
var val = document.getElementById("userinput").value;
var out = eval(val);
document.getElementById("userinput").value = out;
}
关于javascript - eval(document.getElementById ("userinput").value) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23620286/