2017-07-22 46 views
4

我一直在尝试验证我的asp.net文本框只接受数字和'。'
对于我写了一个函数的Internet的帮助(对不起是新来的jQuery)
jQuery的通过只允许数字和浮动使用jquery验证文本框

$('#<%= txtWidth.ClientID %>').keypress(function (event) { 
$(this).val($(this).val().replace(/[^0-9\.]/g, '')); 
if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) { 
    event.preventDefault(); 
} 
}); 
}); 

它工作正常,但删除Backspace键不working.How我可以使用数字键启用这些键?我需要做些什么改变?

请帮助这个初学者..

+1

为什么不使用''''''? – Treast

+0

@Kirk,代码对我来说很好......甚至退格和删除。 文本框是什么样的输入? – Catalyst

+1

@Treast type =“number”它允许在Firefox ..中的字母..我不想使用它 – Kirk

回答

4

希望这将您! !按预期方式可以在FireFox和Google Chrome上运行。

$('#<%= txtWidth.ClientID %>').keypress(function (event) { 
      if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57) && (event.which != 8)) { 
       event.preventDefault(); 
      } 
     }); 
+0

不工作,您的code.check允许多个点: - https://jsfiddle.net/gpnc437h/ –

+0

@AlivetoDie对不起,我没有注意到..! – Aju

+1

@AlivetoDie,它只允许多个点在铬上。代码在Firefox上完美工作,请检查它..! #$%* !!!我们如何使这个浏览器兼容...? – Aju

3

做象下面这样: -

的演示例子: -

$(function() { 
 
    $("#abc").keydown(function (event) { 
 
console.log(event.keyCode); 
 
    if (event.shiftKey == true) { 
 
     event.preventDefault(); 
 
    } 
 

 
    if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46 || event.keyCode == 190) { 
 

 
    } else { 
 
     event.preventDefault(); 
 
    } 
 

 
    if($(this).val().indexOf('.') !== -1 && event.keyCode == 190) 
 
     event.preventDefault(); 
 
     //if a decimal has been added, disable the "."-button 
 

 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="abc"/>

+0

它不适用于较旧的浏览器版本。核实..!!只是问,我们如何限制点的数量,float文本框只能接受一个点吗? – Aju

+0

@Aju和kirk现在检查 –

+0

点不工作! – Kirk

相关问题