有人能帮我处理这个代码吗,我';当按下bs键(Jquery)时,我试图清除一个文本框?

有人能帮我处理这个代码吗,我';当按下bs键(Jquery)时,我试图清除一个文本框?,jquery,performance,jquery-ui,jquery-mobile,Jquery,Performance,Jquery Ui,Jquery Mobile,问题是,我想在用户按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()

问题是,我想在用户按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();
              }
if(e.keyCode>=48&&e.keyCode 1)
{    
var current_value=parseFloat($).val().replace('$','');
//e.预防违约();
//密钥代码始终高于48。。
var值=parseFloat(e.keyCode)-48;
值=(当前_值*10)+值;
$(“#txt_monto”).val(accounting.formatMoney(value,“$”);
}
}
其他的
{
如果(e.keyCode==8){
$(“#txt_monto”).val(accounting.formatMoney(0,'$);
}
e、 预防默认值();
}
这是整个脚本,在我看来一切都是正确的,我已经尝试过了,我不认为这是一个语法问题,我认为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();
              }
        });


      });

$(文档).ready(函数(){
$(“#txt_monto”).keyup(函数(){
var值=$('#txt_monto').val();
$(this.val(accounting.formatMoney(value,“$”);
});
$(“#txt_monto”).按键(功能(e){
如果(e.keyCode>=48&&e.keyCode 1)
{
var current_value=parseFloat($).val().replace('$','');
//e.预防违约();
//密钥代码始终高于48。。
var值=parseFloat(e.keyCode)-48;
值=(当前_值*10)+值;
$(“#txt_monto”).val(accounting.formatMoney(value,“$”);
}
}
其他的
{
如果(e.keyCode==8){
$(“#txt_monto”).val(accounting.formatMoney(0,'$);
}
e、 预防默认值();
}
});
});
好的,这是我对该部分的HTML:

   <td> <p> Monto a regargar: </p>   </td>

   <td><input type="text" class="txt1" name="txt_monto"  id="txt_monto" maxlength="4" ></td>

Monto a regargar:


尝试使用类似以下脚本的方法将keycode正确分配给变量,然后将该变量用作keycode(而不是e.keycode)。我会给你更多的信息,但我自己仍在学习javascript

$(document).keypress(function (myEvent) {
    var key = myEvent.keyCode ? myEvent.keyCode : myEvent.which ? myEvent.which : myEvent.charCode;
});
正如我所说,我自己仍在学习,但我一直在使用这些代码来实现类似于您所拥有的函数。

如果您尝试一下,也许可以

$("#txt_monto").keypress(function(e){
           var key = e.keyCode || e.which;
           if(key >= 48 && key <= 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(key) - 48;
                            value = (current_value * 10) + value;
                            $("#txt_monto").val(accounting.formatMoney(value, '$'));
                        }
              }
          else
              {
                  if(key == 8){
                      $("#txt_monto").val(accounting.formatMoney(0, '$'));
                  }
                  e.preventDefault();
              }
        });
$(“#txt_monto”)。按键(功能(e){
var key=e.keyCode | | e.which;
如果(键>=48和键1)
{
var current_value=parseFloat($).val().replace('$','');
//e.预防违约();
//密钥代码始终高于48。。
var值=parseFloat(键)-48;
值=(当前_值*10)+值;
$(“#txt_monto”).val(accounting.formatMoney(value,“$”);
}
}
其他的
{
如果(键==8){
$(“#txt_monto”).val(accounting.formatMoney(0,'$);
}
e、 预防默认值();
}
});

代码的其余部分在哪里?可能会有帮助。谢谢Wesley,但问题不在于“'”,这是我在键入问题时的一个输入错误。如果您也能提供您的HTML,那将是非常好的。我的HTML现在就在那里..我尝试了var=e.Which | | e.keyCode;这不起作用,尝试了“var key=myEvent.keyCode”?myEvent.keyCode:myEvent.which?myEvent.which:myEvent.charCode;”“那也不行