2015-06-29 38 views
0

我有這個文本框,它應該是紅色的,直到用戶輸入所有5個字符,但然後應該是綠色的,但是當用戶輸入第一個字符時它變綠,而且它甚至不需要是數字。 ..我如何解決這個問題?如何在角度固定ng圖案

@Html.TextBoxFor(m => m.ZipCode, new { id = "zip", @class = "form-control", @maxlength = "5", @required = "required", ng_model = "zipCode", ng_pattern = @"^[0-9]{5}$" }) 

和風格

.ng-invalid { 
    background-color:#FF8080; 

} 
.ng-valid { 
    background-color:#ADEBAD; 
} 

回答

0

我修改你的格局喜歡讀這樣的:/^(\w{1,5})$/

\ w是短的所有字母數字字符和錨強制模式匹配整個輸入。

我的JS是這樣的:

var App = angular.module('App',[]).controller('Ctrl', Ctrl); 

    function Ctrl($scope){ 
     $scope.noLetters5LengthRegex = /^\d{1,5}$/; 
    } 

我的標記:

<div ng-app="App"> 
    <div ng-controller="Ctrl"> 
    <input type="text" ng-model="something" ng-pattern="noLetters5LengthRegex" 
    required/> 
    </div> 
</div> 

注意:您可以取圖案了控制器功能,並將其放置到視圖直接,如果你想,同樣的事情只是你想要更多的地方。

這裏是一個工作演示給你:

更新,如每個操作請求

http://codepen.io/nicholasabrams/pen/QbaxrE

+0

我想你的模式,但我需要輸入更多然後5得到有效的模式 – None

+0

做工精細在這裏爲我輸入1 2 3 4 5如果輸入1 2 3 4 5 a或1 1 2 3 4 5它不會工作,如果輸入1 2 3 4它不會工作。必須是5位數字,沒有例外。請告訴我它是如何不工作 –

+0

,因爲我需要輸入數字,我想要任何字符輸入,並且必須超過5個字符...因爲它的密碼模式 – None

0

你的範圍需要有一個逗號。

ng_pattern = @"^[0-9]{5,5}$" 

我會建議什麼阿爾法G33k說,使用數字速記,以及因爲它使得它更具可讀性。

ng_pattern = @"^\d{5,}$" 

如果你想5,只有5個字符,你的模式需要有以下幾點:

ng_pattern = @"^\d{5,5}$" 
+0

當我使用這隻適用於如果我以數字開頭,但如果我以字母開頭,那麼我需要多於5個字符 – None

+0

你能描述確切的你正在尋找的模式?例如,您需要有一個可以包含字母字符或以字母開頭的單詞,但以5位數字結尾? –

+0

它的密碼...所以用戶可以輸入所有可能的字符,但它必須多於5 ...所以它可以以字母或數字或_開始 - 所有可能的但它必須多於5且小於16 – None