2016-07-31 32 views
1

我嘗試使用AngularJS指令來驗證表單productForm,所以我嘗試:AngularJS驗證問題

<form id="productForm" name="productForm" novalidate> 
    <div style="width: 100%; margin-top: 15px; float: right; "> 
       <label style="width:103px;float:right" class="col-sm-2" for="ProductName">ProductName: </label> 

       <div style="float:right" class="col-sm-5"> 
        <input ng-required="true" class="form-control" style="float:right" type="text" id="ProductName" name="ProductName" ng-model="modal.ProductName" value="" /> 
       </div> 
       <div style="float:right" class="col-md-7" > 
        <span class="help-block" ng-if="productForm.ProductName.$error.required && productForm.ProductName.$dirty && productForm.ProductName.$touched "> Name is Must</span> 
       </div> 

    </div> 
    <button class="btn" style="background-color: #ed9c28;" type="button" ng-click="Save()" ng-disabled="productForm.$invalid">Save</button> 
</form> 

這樣的問題是:當用戶觸摸ProductName,然後失去焦點,所需要的信息沒有顯示(它只是顯示當用戶輸入輸入,然後從輸入中清除全文,但我想顯示錯誤信息,當輸入爲空時),我嘗試使用productForm.ProductName.$touchedng-if的錯誤消息做它,但它不起作用,我該怎麼做?

+0

要了解發生了什麼做到這一點:''

這 –
                        
                            
    developer033
                                
                            
                        
                    

回答

0

我就省略了$髒檢查,而是檢查$invalid$touced

ng-if="productForm.ProductName.$invalid && productForm.ProductName.$touched" 
+0

是不是答案。 'ngShow'和'ngIf'都適用於這種情況(即使在任何情況下都不應該使用ngShow)。 – developer033

+0

@ developer033爲什麼在任何情況下都使用ngShow?解決方法是省略髒檢查和註釋,我將使用ng-show只是一個提示。但也許你可以說服我...... –

+0

那麼,'ngShow'被認爲是一種不好的做法。 'ngIf'是推薦的,但你可以使用'ngShow'。我在這裏指出,他的問題不在'ngIf'中。 – developer033