我試圖格式化使用以下方法用戶輸入的值,但我得到消防錯誤控制檯上出現以下錯誤的Javascript toFixed()函數
$(本).VAL()。toFixed不是一個函數
$(".amount-text").bind('change',function() {
$(this).val(($(this).val()).toFixed(2));
});
有人可以幫助我嗎?
我試圖格式化使用以下方法用戶輸入的值,但我得到消防錯誤控制檯上出現以下錯誤的Javascript toFixed()函數
$(本).VAL()。toFixed不是一個函數
$(".amount-text").bind('change',function() {
$(this).val(($(this).val()).toFixed(2));
});
有人可以幫助我嗎?
.val()
返回一個字符串,使用.toFixed()
上一個數字,你需要將它解析爲一個號碼第一次,像這樣:
$(".amount-text").bind('change',function() {
$(this).val(parseFloat($(this).val()).toFixed(2));
});
或者使用jQuery 1.4+,有點清潔,至少要我use a function with .val()
:
$(".amount-text").bind('change',function() {
$(this).val(function(i, v) { return parseFloat(v).toFixed(2); });
});
toFixed
僅適用於數字,值解析到多個第一:
$(this).val(parseFloat($(this).val()).toFixed(2));
這是因爲val()
返回String
而非Number
。爲了能夠使用toFixed()
,做這樣的事情:
$(".amount-text").bind('change',function() {
$(this).val((parseFloat($(this).val())).toFixed(2));
});
甚至:
$(".amount-text").bind('change',function() {
$(this).val((new Number($(this).val())).toFixed(2));
});
您還可能能夠稍微hackily做得一樣:
$(".amount-text").bind('change',function() {
$(this).val((0 + $(this).val()).toFixed(2));
});
,但我不要爲了可讀性的目的而推薦它!
+1使用函數 - 看起來更可讀。 – DMI 2010-09-16 09:14:27
當我使用該函數時,它返回一個對象。 – Keyslinger 2011-11-08 20:57:18