2013-01-10 75 views
2

我正在嘗試編寫一個簡單的檢查來查看字段是否填充了大於5的值。我已經設置了一個表單並放置了幾個文本田地,其中一個領域將需要一美元的金額。我試圖檢查這個美元的金額是否超過5美元,如果不是隻彈出一個警告,讓用戶知道它不超過5美元。我到目前爲止的代碼是:檢查表單字段的值是否超過特定數字

<script> 
    function validateForm() 
    { 
     var x=document.forms["amnt"]["Amount"].value; 
     if (x<5) 
     { 
      alert("value is under 5 dollars!"); 
      return false; 
     } 

    } 
</script> 

這個腳本行之有效的東西像檢查,如果一個字段是空的,但是當我試圖改變它,以檢查它只是讓用戶繼續字段的值,即使價值低於5.

任何人都可以提供任何反饋,如何得到這個檢查字段的實際數值,看看它是否高於5美元的金額?

編輯:感謝所有的答案,他們都很好,我是一個白癡,忘記了包括表單的onsubmit選項,所以它沒有做我的任何腳本。現在,這是固定的每一個好建議,你傢伙已經工作得很好。感謝所有的幫助,對不起混淆!

+0

你能告訴我們你叫「validateForm」嗎? –

+2

嘗試'var x = + document.forms [「amnt」] [「Amount」] value);'(With +) – Mageek

+1

@Mageek ='「6」<5'爲'false'。 –

回答

3

試試這個:

var x=parseInt(document.forms["amnt"]["Amount"].value); 
+0

你在我面前得到了你的答案。工作很好。 +1 – War10ck

+0

如果你解釋了原因,這將有所幫助。 –

+0

元素值是字符串,所以它必須轉換爲數字來比較 – karaxuna

1

你得到一個字符串,當你調用.value。你應該比較整數,所以使用parseInt()

<script> 
    function validateForm() 
    { 
     var x = parseInt(document.forms["amnt"]["Amount"].value); 
     if (x<5) 
     { 
      alert("value is under 5 dollars!"); 
      return false; 
     } 

    } 
</script> 
1

我會使用parseInt函數設置爲10第二個參數,因此它與基數10

var x=parseInt(document.forms["amnt"]["Amount"].value, 10); 

如果省略帕拉姆,在一些分析輸入(舊的)瀏覽器像這可能發生。

parseInt函數('09 ')== 0(它的解析八進制,因爲前導0的)

parseInt函數(09',10)== 9(十進制被迫)

+1

僅供參考,預先加一個'+'相當於'parseInt',基數設置爲'10'。 –

1
<script> 
function validateForm() 
{ 
    var x = parseInt(document.forms["amnt"]["Amount"].value); 
    if (x && Number(x)<5) 
    { 
     alert("value is under 5 dollars!"); 
     return false; 
    } 

} 
</script> 
相關問題