2012-05-05 24 views
1

簡單的驗證,我有兩個文本框,與我試圖驗證像與jQuery

var max = $("#txtMaximumMark").val() 
var min = $("#txtMinimumMark").val(); 

var valid = max > min; 

如果我給10 minimun和100爲最大,它顯示給定值是有效的,但如果我給40至少爲100,最大爲100,有效返回false,這裏是什麼,爲什麼它返回false,任何人都可以幫我在這裏...

回答

2

因爲它比較strings。使用.val()會返回字符串,因此當您比較它們時,會將它們作爲字符串進行比較。

在字符串中,4高於1,所以40高於100(如a高於baaa)。

要正確地做你的比較,使用parseInt投你的字符串到整數:

var valid = parseInt(max, 10) > parseInt(min, 10); 
+0

感謝您的解決方案,這裏是10什麼,是它的大小? – shanish

+0

這是基數參數。它告訴'parseInt'在哪個基礎上投射。如果你不這樣說,'parseInt'會嘗試爲你猜測。例如,當你想要基數爲10時,'parseInt(「09」)'強制轉換爲8。 –

+0

感謝Florian .. – shanish

1

字符串不是整數。首先解析數值:

var valid = parseInt(max, 10) > parseInt(min, 10); 

「40」大於「100」。但是當這些被轉換爲整數時,情況就不再是這樣了。

+0

感謝您的解決方案喬納森,謝謝alott – shanish

2

比較兩個號碼,您可以轉換爲數字

max = parseInt(max); 
min = parseInt(min); 
+0

parseFloat(number) –

1

40> 100,如果最小和最大實例串。

+0

Florian的解決方案爲我工作,謝謝你的迴應FiftiN – shanish