parseFloat on $(this).val()返回一个对象

时间:2013-06-20 15:01:41

标签: javascript jquery

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

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

陷入下一行。

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

抛出一个类型对象,因为e是一个对象,并且不识别函数isNumeric()。如“未捕获的TypeError:对象18.37没有方法'isNumeric'

我知道parseFloat()不能处理$(this).val()。谁能告诉我为什么?

2 个答案:

答案 0 :(得分:3)

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

试试这个:

if(!isNaN(e) ... )

此外,0 < e < 24也不起作用。你需要写

if(!isNaN(e) && 0 < e && e < 24)

答案 1 :(得分:0)

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

BTW,现在所有体面的浏览器(和Internet Explorer)都提供了一个内置的JavaScript控制台,除了其他功能之外,它还允许您console.log()变量。绝对没有必要猜测。