Javascript / jQuery – Floatvalidation?

我有一个文本字段,一个人可以输入价格(XX.xx)。 有没有办法确保它们只在小数点后输入不超过2位数?

以下是主要的validation类型。

$(document).ready(function(){ //for numeric integer only var num_int_Exp = /^[0-9]+$/; $("body").on("keypress", ".custom_numeric_int", function(e){ var keynum; if(window.event){ // IE keynum = e.keyCode; }else if(e.which){ // Netscape/Firefox/Opera keynum = e.which; } if(!String.fromCharCode(keynum).match(num_int_Exp)) { return false; } return true; }); //for numeric float only $("body").on("keypress", ".custom_numeric_float", function(e){ //$('.custom_numeric_float').keypress(function(event) //alert($(this).val().indexOf(".")); if ($(this).val().indexOf(".") > -1 && event.which == 46) { return false; } if ((event.which != 46) && (event.which < 48 || event.which > 57)) { event.preventDefault(); } }); //for character input var charExp = /^[a-zA-Z]+$/; $("body").on("keypress", ".custom_char", function(e){ var keynum; if(window.event){ // IE keynum = e.keyCode; }else if(e.which){ // Netscape/Firefox/Opera keynum = e.which; } if(!String.fromCharCode(keynum).match(charExp)) { return false; } return true; }); //for alpha-numeric input var alphaExp = /^[a-zA-Z0-9]+$/; $("body").on("keypress", ".custom_alphanumeric", function(e){ var keynum; if(window.event){ // IE keynum = e.keyCode; }else if(e.which){ // Netscape/Firefox/Opera keynum = e.which; } if(!String.fromCharCode(keynum).match(alphaExp)) { return false; } return true; });}); 

现在给你的文本框提供适当的类,你就完成了validation。 希望这会有所帮助。

您可以使用Masked Input Plugin解决输入价格问题。 jQuery网站上还有更多内容。

可以对格式和内容进行validation数据。 完成格式化后,您可以使用jQueryvalidation插件 。 对于格式,我会使用web服务作为地址,但对于州和国家,您可以提供带有强制选择的下拉列表(输入选择)。

Zipcode例如每个国家/地区不同,因此您必须依赖于国家/地区选择;)

小数位代码:

  $('.price').keydown(function() { var decPos = $(this).val().split('.'); if(decPos.length > 1) { decPos = decPos[1]; if(decPos.length >= 2) return false; } }); 

可能会在此处找到validation地址信息 – http://docs.jquery.com/Plugins/validation

我认为最好的选择是使用正则表达式。 更多信息

对于十进制示例:

 var decimal = /\.\d\d$/;