首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jquery自动计算HTML输入值

使用jquery自动计算HTML输入值
EN

Stack Overflow用户
提问于 2015-06-22 01:39:28
回答 4查看 418关注 0票数 0

我有以下Html

代码语言:javascript
运行
复制
<input class="top-display" value="5+5" id="display" disabled="disabled"> </input>
<button class="btn" > submit </button>

和jquery

代码语言:javascript
运行
复制
$('.btn').click(function(){
    var selected = $('#display').val();
    alert(selected);

});

小提琴在这里代码的重点是让jquery自动为我计算。就像jquery警告"5+5“一样,它应该警告"10”。如果值= "5-5“应该警告"0";而不添加任何if语句。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-06-22 06:00:26

您可以使用eval()

方法计算表示为字符串的JavaScript代码。

将代码更改为:

代码语言:javascript
运行
复制
$('.btn').click(function(){
    var selected = eval($('#display').val());
    alert(selected);
});

还请注意:

eval()是一个危险的函数,它以调用者的权限执行传递的代码。

请在MDN上阅读更多信息,以了解涉及eval的风险。

对象/评估

票数 2
EN

Stack Overflow用户

发布于 2015-06-22 08:02:09

更新Fiddle

代码语言:javascript
运行
复制
$('.btn').click(function(){
    var selected = $('#display').val();
    alert(eval(selected));
});

不要忘记添加适当的错误处理,以避免在存在兼容值的情况下出现错误。

编辑: eval函数已经知道安全漏洞。最好不要使用它。

代码语言:javascript
运行
复制
$('.btn').click(function(){
    var selected = $('#display').val();
    alert(evil(selected));
});

function evil(fn) {
    return new Function('return ' + fn)();
}

这是我在另一个线程中找到的另一个解决方案。

票数 2
EN

Stack Overflow用户

发布于 2015-06-22 08:08:05

您之所以使5+5处于警报状态是因为您的“表达式”未被执行。会执行参数的位置(Args)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30974692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档