2017-06-16 43 views
1

我有以下幾點:表單驗證 - 在角度JS不工作

<form name="ctrl.form" class="form-horizontal" ng-class="{true: 'has-error'}[submitted && form.email.$invalid]" 
     novalidate> 

    <div class="form-group" ng-class="{'has-error' : ctrl.form.inputName.$dirty && ctrl.form.inputName.$invalid}"> 
     <label for="inputName" class="col-sm-2 control-label">Name</label> 
     <div class="col-sm-8"> 
      <input type="text" class="form-control" id="inputName" name="inputName" ng-model="ctrl.app.name" 
        placeholder="Enter stack name" ng-disabled="ctrl.editMode" ng-required='true' 
        ng-minlength='3' ng-maxlength='32' required/> 
     </div> 
     <span ng-show="ctrl.form.inputName.$error.required && !ctrl.form.inputName.$pristine" class="help-block">Name is required</span> 
     <span ng-show="ctrl.form.inputName.$error.minlength" class="help-block">Name is too short</span> 
     <span ng-show="ctrl.form.inputName.$error.maxlength" class="help-block">Name is too long</span> 
     <span ng-show="ctrl.form.inputName.$error.pattern" class="help-block">Name has invalid characters</span> 
    </div> 


    <div class="form-group" ng-class="{'has-error' : ctrl.hasServerErrors}"> 
     <div class="col-sm-offset-2 col-sm-10"> 
      <button type="submit" class="btn btn-primary" ng-disabled="ctrl.isCreating" 
        ng-click="ctrl.SubmitForm()">{{ctrl.editMode ? 'Update' : 
       ctrl.isCreating? 'Creating': 'Create'}} 
      </button> 
      <span ng-show="ctrl.hasServerErrors" class="help-block" 
        ng-repeat="serverError in ctrl.serverErrors"> 
      {{serverError}} 
     </span> 
     </div> 
    </div> 
    <div class="alert alert-success" ng-show="ctrl.showUpdateSuccessAlert"> 
     <strong>Successfully updated!</strong> 
    </div> 
</form> 

現在的問題是,即使我已經添加了required tag來命名的,還是當我點擊提交按鈕,呼叫進入沒有顯示該名稱的後端服務是強制性的並且必須提供。

我在這裏遺漏了什麼?謝謝!

+0

如何檢查表單是否有效。什麼是'正在創造'?你如何禁用? – SaiUnique

回答

0
<div class="" ng-show="ctrl.form.inputName.$dirty && ctrl.form.inputName.$invalid"> 
Message which you want to print. 
</div> 

加入此項。

希望這會幫助你。

0

您應該在提交表單之前檢查表單是否有效。

<button type="submit" class="btn btn-primary" ng-disabled="ctrl.form.$invalid" 
       ng-click="ctrl.SubmitForm()">{{ctrl.editMode ? 'Update' : 
      ctrl.isCreating? 'Creating': 'Create'}} 
     </button> 

$ invalid將無效,當表單無效時。

+0

這個工作,但這將禁用創建按鈕本身,直到所有的字段已被輸入。我真正想要的是瀏覽器級別驗證(HTML)不起作用。也就是說,瀏覽器發出如下消息,請輸入一個值或請在列表中選擇一個項目。 – sarah

+0

然後你必須在你的問題中正確地提到這一點。 –

+0

@ Rahi.Shah,我明白了。這是我的錯誤。 – sarah