2013-07-04 22 views
0

的問題是,我要清除的txt_monto當用戶按Backspace鍵,我已經嘗試過:任何人都可以幫我用這段代碼,我試圖按bs時按下(jquery)來清除文本框?

if(e.keyCode == 8){ $("#txt_monto").val(accounting.formatMoney(0, '$')); }

但它只能在Opera,火狐,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(); 
       } 
     }); 


     }); 

OK,這是我的HTML對於部分:

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

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

+0

代碼的其餘部分在哪裏?可能會有幫助。 – putvande

+0

謝謝韋斯利,但問題不是那個「'」,那是我輸入問題時的拼寫錯誤。 – Molinator

+0

如果你也可以提供你的HTML,這將是非常好的。 – Gajotres

回答

0

嘗試使用類似以下腳本的內容來將鍵碼正確分配給變量,然後將該變量用作鍵碼(而不是e.keycode)。我會給你更多的信息,但我仍然在學習JavaScript。

$(document).keypress(function (myEvent) { 
    var key = myEvent.keyCode ? myEvent.keyCode : myEvent.which ? myEvent.which : myEvent.charCode; 
}); 

就像我說的,我仍然在學習它自己,但我使用此代碼對所有類似你有一個功能的時間。

0

也許如果你試試這個?

$("#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(); 
       } 
     }); 
相關問題