2012-05-08 88 views
-1

我從用戶那裏獲得輸入,它需要是整數或0.5的某個倍數。驗證輸入的數字是整數還是「一半」

例如,7,235.5都是有效的,但3.12.7不是。

換句話說,如果用戶鍵入2.3,將會有一個警告,告訴他們他們只能鍵入2.5

我該如何去執行此驗證?

+2

你的問題是什麼? –

回答

2

因爲他們正在輸入字符串,並且浮點數很難得到正確的:-)我建議檢查字符串輸入本身,之前轉換爲浮點數。

如果它包含.字符,請確保最後兩個字符是.5

您可能還想檢查其他情況,具體取決於您希望允許的情況。例如,7.0可能與2.50000000一樣有效。

但是,爲了簡單起見,我只是說,輸入必須是一個整數,或以.5結尾。

+0

哦,我不知道。似乎真的應該有足夠的精度浮點數,以獲得1位小數點的權利。 –

+0

是的,但是如果用戶_enters_'2.4999999999999999',你想抱怨它還是讓它默默修改爲'2.5'? – paxdiablo

+1

我會盡量接近政府的工作。但你說得對;只需將最後一位數字限制爲0或5就足夠了。 –

1
$('button').on('click', function() { 

var val = Number($('input[type=text]').val()).toFixed(1); 
if(val % 0.5) { 
    alert('This value should' + (parseInt(val) + 0.5)); 
} 

}); 
+2

2.6呢? –

+0

啊,我不確定我是否會與確切的平等。 :)浮動並不總是等同的跡象。 –

+0

爲什麼不能:'if(this.value%0.5)/ *值不是0.5的倍數* /' – RobG