我在我的一个asp.net mvc 3视图中使用它:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$('.YesNoNotApplicable').change(function () {
if ($(this).val() === '2') {
$(this).closest('td').next('td').find('input').show();
}
else {
$(this).closest('td').next('td').find('input').hide();
}
});
$('#submitDocument').click(function () {
if ($(".checkString16").val().length > 16) {
alert("The text can be up to 16 symbols");
return false;
}
else if (!$.isNumeric($(".checkULong").val())) {
alert("Insert integer");
return false;
}
else if (!$(".checkFloat").val().match('^[0-9]*\.[0-9]*$')) {
alert("Insert float");
return false;
}
return true;
});
});
</script>
这里的问题是我得到非常随机的结果。如果我的整数检查像现在一样被取消注释,我会一直得到整数提醒。如果我评论它,那么有时浮动检查有效,有时现在,如果它第一次工作,那么我不断得到错误,即使我已经将值更改为浮动。
答案 0 :(得分:1)
我将建议您另一种检查javascript中数字类型的方法。
首先为数学函数创建一个名称空间,如下所示:
mathFunctions = {};
通过使用名称空间(实际上是js对象),您可以使代码更有条理。
然后,您需要创建一些方法来执行程序所需的验证检查:
mathFunctions.isInt = function(value) {
return typeof value === 'number' && value % 1 == 0;
}
mathFunctions.isFloat = function(value) {
return typeof value === 'number'
&& parseFloat(value) == parseInt(value, 10) && !isNaN(value);
}
因此,无论何时需要检查数学值,请调用这些方法,您将获得正确的结果。请查看以下验证代码,例如:
try {
if ($(".checkString16").val().length > 16) {
throw "The text can be up to 16 symbols";
} else if (!mathFunctions.isInt($(".checkULong").val())) {
throw "Insert integer";
} else if (!mathFunctions.isFloat($(".checkFloat").val())) {
throw "Insert float";
}
validationResult = true;
} catch(exc) {
alert(exc)
validationResult = false;
}
return validationResult;
您可以在此帖子中找到有关方法实施的更多信息:How do I check that a number is float or integer?
修改强>
您可以在此页面http://api.jquery.com/jQuery.isNumeric/中看到$ .isNumeric()即使在浮点值上也会返回TRUE。