2014-11-25 114 views
0

我正在使用類型編號的文本框。對於xperia移動的,如果我使用相同的文本框,它顯示一個鍵盤的所有值。所以我可以輸入任何值。我想限制用戶輸入任何值。用戶只需輸入數字。我嘗試了下面的代碼。在jquery mobile中限制字母輸入

*

document.getElementById('loginPin').addEventListener('keyup', function(e){ 
    var keyCode = ('which' in e) ? e.which : e.keyCode; 
    var isNumeric = (keyCode < 48 KeyboardEvent.DOM_VK_0 && keyCode > 57 KeyboardEvent.DOM_VK_9) || 
       (keyCode < 96 KeyboardEvent.DOM_VK_NUMPAD0 && keyCode > 105 KeyboardEvent.DOM_VK_NUMPAD9); 
    var modifiers = (event.altKey || event.ctrlKey || event.shiftKey); 

    return !isNumeric || modifiers; 
    var V = $(this).val(); 
    alert("hai"+V); 
    if (isNaN(V)) { 
     $(this).val(V.replace(/[^0-9]/g,'')); 
    } 


}, false); 

*

這是工作,如果警報是存在的,否則它不能正常工作。所以任何建議來解決這個問題。

+0

你爲什麼要在客戶端上這樣做?對我來說,這聽起來像浪費時間來瞄準約佔網站流量0.2%的設備。無論如何你需要一個服務器端檢查。因此,讓瀏覽器支持HTML5表單字段的用戶只能輸入數字。對於較舊的設備,如果用戶發生意外輸入,則會顯示錯誤消息。當然,你應該在一些幫助文本中描述你的用戶的格式... – feeela 2014-11-25 11:25:45

+0

他們不想要錯誤信息,他們想阻止輸入文本。這是我的要求和任何建議來解決它。 – Elayaraja 2014-11-25 11:27:59

+1

我會建議使用現有的插件來驗證你的表單。像http://jqueryvalidation.org/。這將使得任何形式的驗證變得容易。 – olahell 2014-11-25 11:30:28

回答

0
function numericInput(inputId){ 

     $('#' + inputId).keyup(function (e) { 
      var regex = new RegExp("^[0-9]+$"); 

      if (!regex.test($(this).val())) { 
       $(this).val($(this).val().slice(0, -1)); 
       e.preventDefault(); 
       return false; 
      } 

     }); 
}