2016-06-18 179 views
0

在我的Angular應用程序中,我有一個接受電子郵件地址或電話號碼的字段。Angular - 檢查輸入字段的值是否爲數字

如果輸入一個數字,我想顯示一個特定的跨度。不過,我似乎無法得到這個工作。

所以在我的控制我已經寫:

$scope.isNumber = function (n) { 
    return !isNaN(parseFloat(n)) && isFinite(n); 
} 

然後在我的HTML我有:

<form name="registrationForm"> 

<div> 
    Email or Mobile 
    <span ng-show="isNumber(registrationForm.usernameReg)">Include the country code.</span> 
</div> 

<input name="usernameReg" ng-change="main.change()" type="text" ng-model="main.username"> 

</form> 

任何想法,爲什麼這是行不通的?

謝謝。

+0

剛一說明:我的手機看起來騙+33(0)4。請不要使用parseFloat()來檢查,如果事情是一個電話號碼:一電話號碼不是浮點值。 –

回答

5

您需要測試模型的值。

嘗試

ng-show="isNumber(main.username)" 

registrationForm.usernameReg是包含用作驗證的一部分衆多屬性的對象。

爲了更好地看到這個附加<pre>{{registrationForm |json}}</pre>在你看來

+0

謝謝 - 我試過,但是當我做一個console.log的值時,會給出'undefined' – userMod2

+0

創建一個plunker演示。如果沒有在控制器中預定義,或者直到用戶輸入東西,那麼它將是未定義的 – charlietfl

+0

是的 - 這就是我認爲,即使我輸入的東西,它仍然說'undefined' – userMod2