问题是我想在用户按下 Backspace 时清除 txt_monto,我已经尝试过:
if(e.keyCode == 8){
$("#txt_monto").val(accounting.formatMoney(0, '$'));
}
但它只适用于 Opera,在 Firefox、IE 或 Chrome 上不起作用。
if(e.keyCode >= 48 && e.keyCode <= 57)
{
if($("#txt_monto").val().length > 1)
{
var current_value = parseFloat($("#txt_monto").val().replace('$',''));
// e.preventDefault();
//Key code is always going to be higher than 48..
var value = parseFloat(e.keyCode) - 48;
value = (current_value * 10) + value;
$("#txt_monto").val(accounting.formatMoney(value, '$'));
}
}
else
{
if(e.keyCode == 8){
$("#txt_monto").val(accounting.formatMoney(0, '$'));
}
e.preventDefault();
}
这是整个脚本,对我来说一切看起来都是正确的,我已经尝试过,我认为这不是语法问题我认为还有其他问题,关于 Chrome 和 IE,因为它在 Opera 上运行良好:
<script>
$(document).ready(function(){
$("#txt_monto").keyup(function(){
var value = $('#txt_monto').val();
$(this).val(accounting.formatMoney(value, '$'));
});
$("#txt_monto").keypress(function(e){
if(e.keyCode >= 48 && e.keyCode <= 57)
{
if($('#txt_monto').val().length > 1)
{
var current_value = parseFloat($("#txt_monto").val().replace('$',''));
// e.preventDefault();
//Key code is always going to be higher than 48..
var value = parseFloat(e.keyCode) - 48;
value = (current_value * 10) + value;
$("#txt_monto").val(accounting.formatMoney(value, '$'));
}
}
else
{
if(e.keyCode == 8){
$("#txt_monto").val(accounting.formatMoney(0, '$'));
}
e.preventDefault();
}
});
});
好的,这是我的 HTML 对于那部分:
<td> <p> Monto a regargar: </p> </td>
<td><input type="text" class="txt1" name="txt_monto" id="txt_monto" maxlength="4" ></td>