2013-08-19 40 views
1

誰能告訴我什麼是驗證用戶輸入的替代方法?這只是我今天寫的一個非常基本的代碼。這個簡單的Javascript驗證的其他選擇嗎?

  • 有一個按鈕,在HTML
  • 編碼時,其上的用戶點擊,它會提示輸入
  • 輸入是隻有數字


var a, b; 
function cal(){ 
    a = prompt("enter the width"); 
     while(isNaN(a) || a <= 0 || a > 1000){ 
     alert("Invalid Input, enter it again!"); 
     return cal(); 
      } 
    b = prompt("enter the length"); 
     while(isNaN(b) || b <= 0 || b > 1000){ 
     alert("Invalid Input, enter it again!"); 
     return cal(); 
      } 
    result(a,b); 
    } 
function result(a,b){ 
    var perimeter = (2*a)+(2*b); 
    var area = (a*b); 
    document.write("Perimeter: "+perimeter+"<br>"); 
    document.write("Area: "+area+"<br>"); 
    } 
+0

搜索谷歌的jQuery驗證插件。 – Haben

+0

我的示例http://jsfiddle.net/nCV4w/ – PiLHA

回答

1

一種替代方法是使用新的HTML5輸入類型並回退到類似this 如果瀏覽器尚不支持新的輸入類型。

<input type="number" min="1" max="1000" /> 

但是不要忘了你還必須做服務器端驗證!

網上有很多很棒的資源,所以如何做到這一點。

HTML Text Input allow only Numeric input

+1

好的建議。一個挑剔......爲了複製原始代碼正在做的事情,OP還必須使用mix,max屬性。 –

+0

@Haohmaru,我今天剛剛啓動javascript,所以只涉及到基本的東西,對PHP或任何服務器相關的語言都不太瞭解。不過謝謝 – vincentChen

+0

@vincentChen酷哥哥,我可以建議通過真棒[MDN ](https://developer.mozilla.org/en-US/docs/Web/JavaScript?menu)docs,這裏有一個讓你繼續前進的+1。 – Haohmaru

0

您可以在確認使用正則表達式:

var ptrn=/\D/g; // 'D' is any non-digit 
if(ptrn.test(b) || b <= 0 || b > 1000){ 
    alert("Please enter only integers between 0 and 1000!"); 
    return cal(); 
} 
+0

正則表達式僅用於驗證數字輸入權嗎?我已經用「isNaN」來完成了。不一樣嗎? – vincentChen

+0

不,這是我顯示的非數字模式。對於任何數字,isNaN都會返回false(如果使用'!isNaN',則返回false,包括小數或負數,或者任何可以強制轉換爲數字的值,這意味着1.5會通過'isNaN'測試,範圍爲0-1000。 – williambq