与try..catch_eval()
我在JSFiddle上创建了一个不安全的示例,它可以满足您的要求,但不是在插入符号仍在输入框上时等待结果,而是附加到blur事件,以便在您将焦点切换到控件之外时评估值。
它的作用是这样的:
$("input").blur(function(evt) {
    try {
        var val = eval(this.value);
        this.value = val;
    }
    catch (e) {}
});
它尝试评估输入框的内容,如果能够这样做,则将内容替换为结果。这意味着你可以向它扔任何东西,只要eval能咀嚼它。
我说不安全,因为代码没有检查任何可能导致黑洞吞噬宇宙的内容...... ;)
例子
1 + 2 * 3会变7 
universe会留下它作为宇宙 
010+1将更改为9(因此它也可以使用八进制) 
0xf *2 +3将返回33(看起来也是十六进制) 
- 等等
 
实施您的方式以使其更安全
这当然只是一个开始。如果您希望x成为乘数,则必须在输入字符串中进行一些替换,而我的示例没有这样做。但这样做非常简单。
如果您只想进行特定的计算也是如此,因此您不允许创建对象或日期或任何东西......
在您的情况下可能不受欢迎的一个示例是,如果您输入
alert(new Date())
它当然会执行此代码并显示一个警告框。是否允许这样做取决于您。如果您要将原始数据发布到服务器,您当然希望严格清理输入。