0
我寫了這個。但它正在使用邪惡的評估。任何指導乾淨的方式來完成這件事。我的衛生方法足夠好嗎?我搜索堆棧,發現其他答案,但沒有跳出我的正確的方式。計算單個文本元素的值
<input class="simple-math" name="TheCalculation" value="">
最終用戶將在5 + 3或東西進入,框將更新該值以8
$().ready(function() {
$(".simple-math").change(function() {
// get the current val
var raw = $(this).val();
// sanitize, so a smarty-pants can't do bad stuff
var sanitize = raw.replace(/[^0-9\+\-\*\/\%\(\)]+/, "");
// eval the input
var calc = eval(sanitize);
// set the value
$(this).val(calc);
})
});
如果您要從服務器輸出用戶輸入的數據,通常'eval'是邪惡的。如果你只是評估用戶輸入的內容,他們會對自己做些什麼「壞事」? – Tesserex
@Tesserex非常好地解釋。 –
我在這裏看不到任何依賴於jQuery的問題。 – RobG