2013-01-16 82 views
0

我有這樣的代碼。javascript邏輯運算符不會返回正確的值

No1 : <input type="text" name="no1"> value = 45 
No2 : <input type="text" name="no2"> value = 55 

<script> 
     var no1 = $('input[name=no1]').val(); 
     var no2 = $('input[name=no2]').val(); 
</script> 

但我檢查這個樣子,它總是返回false

parseFloat(no1) < parseFloat(no2); 
//false 

請解釋這個背後的理論。我是新來的JavaScript。我也無法找到谷歌。

+2

每個值是什麼? – Brad

+0

我假設你正在使用jquery選擇器。你確定在頁面內提供了jquery.js的引用嗎? no1和no2的價值是什麼? –

+0

使用您的瀏覽器控制檯來檢查您的號碼是什麼:在腳本中插入'console.log(no1,no2)'。 – Stuart

回答

3

好吧,就目前而言,兩個輸入都有一個空值,所以parseFloat給出了NaN,這是不可比較的,因此涉及它的任何比較都是錯誤的。

+0

我已經輸入值(45&55等)到文本字段。 – Namal

+1

那麼'45> 55'是錯誤的...... –

+0

我知道。 55> 45也是錯誤的。 – Namal

-1

我同意Kolink試試這個。

No1 : <input type="text" name="no1"> 
No2 : <input type="text" name="no2"> 

<script> 
     var no1 = document.getElementsByName('no1')[0].value; 
     var no2 = document.getElementsByName('no2')[0].value; 
     // will evaluate properly as long as you supply number inside input text 
     parseFloat(no1) > parseFloat(no2); 
</script> 
+0

哦,是的。謝謝你提醒我。 –

+0

注意* *兩個*輸入文本都需要數字,否則比較總是返回false。如果你想它把一個空字段當作0來處理,你可以像'parseFloat(no1 || 0)> parseFloat(no2 || 0)' – Stuart

+0

那樣評價一些東西,我在這裏看不到任何區別。 –