Javascript/jQuery-浮点验证?
我有一个文本字段,人们可以在其中输入价格(XX.XX)。有没有办法确保他们在小数点后只输入不超过2位的数字?你可以用一个简单的方法解决输入价格问题。网上还有更多 可以在格式和内容上验证数据。在格式上完成后,您可以使用。对于格式,我会对地址使用webservice,但对于州和国家,您可以提供带有强制选择的下拉列表(输入选择)Javascript/jQuery-浮点验证?,javascript,jquery,validation,google-maps,Javascript,Jquery,Validation,Google Maps,我有一个文本字段,人们可以在其中输入价格(XX.XX)。有没有办法确保他们在小数点后只输入不超过2位的数字?你可以用一个简单的方法解决输入价格问题。网上还有更多 可以在格式和内容上验证数据。在格式上完成后,您可以使用。对于格式,我会对地址使用webservice,但对于州和国家,您可以提供带有强制选择的下拉列表(输入选择) Zipcode(例如,每个国家/地区不同,因此您必须根据国家/地区的选择进行设置;) 十进制位置代码: <input type="text" class="price"
Zipcode(例如,每个国家/地区不同,因此您必须根据国家/地区的选择进行设置;) 十进制位置代码:
<input type="text" class="price" value="" />
$('.price').keydown(function() {
var decPos = $(this).val().split('.');
if(decPos.length > 1)
{
decPos = decPos[1];
if(decPos.length >= 2) return false;
}
});
$('.price').keydown(函数(){
var decPos=$(this.val().split('.');
如果(decPos.length>1)
{
decPos=decPos[1];
如果(decPos.length>=2)返回false;
}
});
验证地址信息可能会在这里找到-我认为最好的选择是使用正则表达式 对于十进制示例:
var decimal = /\.\d\d$/;
以下是验证的主要类型
$(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;
});});
$(文档).ready(函数(){
//仅适用于数字整数
变量num_int_Exp=/^[0-9]+$/;
$(“body”)。在(“按键”上,“.custom\u numeric\u int”,函数(e){
var-keynum;
if(window.event){//IE
keynum=e.keyCode;
}否则
if(e.which){//Netscape/Firefox/Opera
keynum=e.which;
}
if(!String.fromCharCode(keynum).match(num\u int\u Exp))
{
返回false;
}
返回true;
});
//仅适用于数字浮点
$(“body”)。在(“按键”上,在“.custom\u numeric\u float”上,函数(e){
//$('.custom\u numeric\u float')。按键(函数(事件)
//警报($(this).val().indexOf(“.”);
if($(this.val().indexOf(“.”>)-1&&event.which==46){
返回false;
}
如果((event.which!=46)和&(event.which<48 | | event.which>57)){
event.preventDefault();
}
});
//用于字符输入
var charExp=/^[a-zA-Z]+$/;
$(“body”)。在(“按键”,“自定义字符”,函数(e){
var-keynum;
if(window.event){//IE
keynum=e.keyCode;
}否则
if(e.which){//Netscape/Firefox/Opera
keynum=e.which;
}
if(!String.fromCharCode(keynum).match(charExp))
{
返回false;
}
返回true;
});
//用于字母数字输入
变量alphaExp=/^[a-zA-Z0-9]+$/;
$(“正文”)。在(“按键”上,“.custom_字母数字”,函数(e){
var-keynum;
if(window.event){//IE
keynum=e.keyCode;
}否则
if(e.which){//Netscape/Firefox/Opera
keynum=e.which;
}
if(!String.fromCharCode(keynum).match(alphaExp))
{
返回false;
}
返回true;
});});
现在给文本框指定适当的类,验证就完成了。
希望这会有所帮助。这并不能确保按照OP的要求输入小数点。它会检查值,并且不允许用户输入超过两位小数。是否希望我添加一个jsfiddle.net链接来演示它的工作原理?如果我输入AAA.AA,它会工作,但这不是小数;)老实说,我不相信有人会把字母输入到价格输入中。如果OP愿意,我将对其进行编辑,以禁止除字母和十进制值以外的所有内容。