我有以下Html
<input class="top-display" value="5+5" id="display" disabled="disabled"> </input>
<button class="btn" > submit </button>
和jquery
$('.btn').click(function(){
var selected = $('#display').val();
alert(selected);
});
小提琴在这里代码的重点是让jquery自动为我计算。就像jquery警告"5+5“一样,它应该警告"10”。如果值= "5-5“应该警告"0";而不添加任何if语句。
发布于 2015-06-22 06:00:26
您可以使用eval()
方法计算表示为字符串的JavaScript代码。
将代码更改为:
$('.btn').click(function(){
var selected = eval($('#display').val());
alert(selected);
});
还请注意:
eval()是一个危险的函数,它以调用者的权限执行传递的代码。
请在MDN上阅读更多信息,以了解涉及eval的风险。
发布于 2015-06-22 08:02:09
$('.btn').click(function(){
var selected = $('#display').val();
alert(eval(selected));
});
不要忘记添加适当的错误处理,以避免在存在兼容值的情况下出现错误。
编辑: eval
函数已经知道安全漏洞。最好不要使用它。
$('.btn').click(function(){
var selected = $('#display').val();
alert(evil(selected));
});
function evil(fn) {
return new Function('return ' + fn)();
}
这是我在另一个线程中找到的另一个解决方案。
发布于 2015-06-22 08:08:05
您之所以使5+5处于警报状态是因为您的“表达式”未被执行。会执行参数的位置(Args)。
https://stackoverflow.com/questions/30974692
复制相似问题