0
$.ready(function {
    $('.timeViewList input').on("blur", validateHrs);
});

function validateHrs(){
    var e = parseFloat($(this).val());

卡在下一行。

    if (e.isNumeric() && (0 < e < 24)) {...}
}

它抛出一个类型对象,因为 e 是一个对象,并且不识别函数 isNumeric()。如“Uncaught TypeError: Object 18.37 has no method 'isNumeric'

我了解 parseFloat() 不适用于 $(this).val()。谁能告诉我为什么?

4

2 回答 2

3

问题是浮点数没有isNumeric功能,这正是错误消息所说的。

尝试这个:

if(!isNaN(e) ... )

此外,0 < e < 24也不会工作。你需要写

if(!isNaN(e) && 0 < e && e < 24)
于 2013-06-20T15:04:11.950 回答
0

isNumeric()是 jQuery 对象的一个​​方法。parseFloat()是一个普通的 JavaScript 函数。你不能指望一个标准的 JavaScript 函数返回一个 jQuery 对象。特别是这个,返回一个数字NaN。顺便说一句,isNaN()允许您测试您的e变量是否不是数字。

顺便说一句,现在所有像样的浏览器(和 Internet Explorer)都提供了一个内置的 JavaScript 控制台,除其他功能外,它还允许您访问console.log()您的变量。完全没有必要猜测。

于 2013-06-20T15:08:46.637 回答