2013-03-24 18 views
0

我試圖讓數字輸入的自動轉移到小數點後2位 - 但多次嘗試後,我不能讓這個去 - 和想法?:toFixed onBlur不想開火?

HTML

<tr> 
    <td colspan="2" class="null"></td> 
    <td class="label">Money Accounted For</td> 
    <td class="field"><input type="text" name="moneyAccountedFor" id="moneyAccountedFor" tabindex="7" /></td> 
</tr> 

JQuery的

$("#moneyAccountedFor").blur(function() { 
     $(this).val($(this).value.toFixed(2)); 
    }); 

編輯: 要更加緊密地看看我的問題 - 我創建了一個小提琴:http://jsfiddle.net/drewwyatt/AEWHs/

回答

3

使用this.value而不是$(this).value

$("#moneyAccountedFor").blur(function() { 
    this.value = this.value.toFixed(2); 
}); 

或者$(this).val()如果你喜歡它更多jQuery'ish。

更新

的進一步問題就座於輸入值類型。你需要通過parseFloatparseIntelse解析其作爲整數值...

$("#moneyAccountedFor").blur(function() { 
    this.value = parseInt(this.value).toFixed(2); 
}); 

http://jsfiddle.net/AEWHs/2/

+0

這似乎並不奏效 - 我瘋了嗎? http://jsfiddle.net/drewwyatt/AEWHs/ – drewwyatt 2013-03-24 23:09:47

+0

@anwyatt是的,注意到了。查看我的更新:http://jsfiddle.net/AEWHs/2/ – yckart 2013-03-25 02:13:20

0

我能得到這個工作在這裏使用

<tr> 
    <td colspan="2" class="null"></td> 
    <td class="label">Money Accounted For</td> 
    <td class="field"><input type="text" name="moneyAccountedFor" id="moneyAccountedFor" onblur ="this.value = Number(this.value).toFixed(2)"></td> 
</tr> 

小提琴:

http://jsfiddle.net/drewwyatt/AEWHs/1/