我有一个像下面这样的html字段
<input type="text" name="price" class="validate_price" id="price"/>
因此该字段应仅接受来自输入的float,decimal,integer值。
jQuery代码
<script>
function isFloat(value)
{
return value!= "" && !isNaN(value) && Math.round(value) != value;
}
$(document).ready(function(){
$('.validate_price').focusout(function(){
var value = this.value;
if (value)
{
if (!isFloat(value) || !$.isNumeric(value))
alert('Value must be float or not');
}
});
});
</script>
所以从上面的代码中,我的意图是,我应该允许用户输入整数值(1,2,2, etc.,)
,浮点值(1.0, 2.0, 3.0, 3.2, 3.5, etc.)
和小数值(2.152, 4.56, 5.000, 6.3256, 2.00 etc.,)
如何检查/实施上述功能?
答案 0 :(得分:8)
如果您从jQuery.isNumeric()
manual手册中注意到它,它也会验证浮点数,因此不需要包含任何其他参数。要验证号码,您只需使用jQuery.isNumeric()
:
if (!$.isNumeric(value)) {
alert('Value must be numeric');
}
我为你做了一个快速的jsFiddle:http://jsfiddle.net/guxz9/
答案 1 :(得分:1)
取自MDN documentation on parseFloat中的一段:
var filterFloat = function (value) {
if(/^\-?([0-9]+(\.[0-9]+)?|Infinity)$/
.test(value))
return Number(value);
return NaN;
}
答案 2 :(得分:1)
这将使您的所有浮点数有效。它也只会对单次负号(' - ')和点(。)符号有效。
function float_validation(event, value){
if(event.which < 45 || event.which > 58 || event.which == 47 ) {
return false;
event.preventDefault();
} // prevent if not number/dot
if(event.which == 46 && value.indexOf('.') != -1) {
return false;
event.preventDefault();
} // prevent if already dot
if(event.which == 45 && value.indexOf('-') != -1) {
return false;
event.preventDefault();
} // prevent if already dot
if(event.which == 45 && value.length>0) {
event.preventDefault();
} // prevent if already -
return true;
};
<input type="text" onkeypress="return float_validation(event, this.value)" class="form-control"/>
这将验证: -12.33 12.44 12
答案 3 :(得分:0)
$("#Latitude, #Longitude, #Revenue").keydown(function(e) {
debugger;
var charCode = e.keyCode;
if (charCode != 8) {
alert($(this).val());
if (!$.isNumeric($(this).val()+e.key)) {
return false;
}
}
return true;
});