2014-11-25 83 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; 
      } 

     }); 
}