2013-06-20 124 views
0
$.ready(function { 
    $('.timeViewList input').on("blur", validateHrs); 
}); 

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

卡在下一行。

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

它投擲一種類型的對象,因爲e是一個對象,並且不識別功能ISNUMERIC()。正如在「遺漏的類型錯誤:對象18.37有沒有方法‘ISNUMERIC’

據我所知,parseFloat()不工作在$(本).VAL()誰能告訴我,爲什麼

回答

3

的問題是? 。漂浮不具有isNumeric功能,這是錯誤消息說,正是

試試這個:

if(!isNaN(e) ...) 

此外,0 < e < 24不會工作你需要寫

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

對。完全不需要檢查它是否是數字。只需要確保parseFloat返回一個有效的浮點數。感謝您的快速回答。 (幾分鐘後它會讓我接受。) – eightArmCode

0

isNumeric()是jQuery對象的一種方法。 parseFloat()是一個香草JavaScript函數。你不能指望一個標準的JavaScript函數返回一個jQuery對象。尤其是,這個返回的數字爲NaN。順便提一下,isNaN()允許您測試您的e變量是否不是數字。

順便說一句,所有的體面的瀏覽器nowaday(和Internet Explorer)提供了一個內置的JavaScript控制檯,除其他功能,讓你console.log()的變量。絕對不需要猜測。