2016-01-26 49 views
0

我正在構建自定義表單字段。我試圖在用戶點擊我的username字段上的submit按鈕時發生錯誤。

但有些原因,它不起作用。這裏是我username場:

<form name="myform" ng-submit="formSubmit()" novalidate> 

     <input ng-model="fields.name.title" 
     placeholder="Enter your name" name="username" type="text" required> 

     <span ng-show="myform.username.$error.required && !myform.username.$pristine">Invalid name</span> 

     <drop-down data="fields.levels" func='levelHandler'></drop-down> 

     <drop-down data="fields.stages" func='levelHandler'></drop-down> 

     <drop-down data="fields.colors" func='levelHandler'></drop-down> 

     <button type="submit">Submit Form</button> 

    </form> 

Live Demo

任何一個可以幫助我嗎?

+0

這實際上有效,但我認爲你的邏輯是關閉的。只有滿足**兩個條件時,範圍纔有效:該字段爲空(違反要求)並且已被修改(違反'$ pristine')。因此,它會顯示您何時輸入一個值,然後將其完全刪除,而不是其他情況。那是你的期望? – Claies

回答

1

這是因爲你$pristine屬性,除非你真的在表單中輸入內容(使其變髒)。

嘗試檢查$submitted

<span ng-show="myform.username.$error.required && myform.$submitted">Invalid name</span> 
1

變化!myform.username。$質樸與myForm的。$提交您的NG-show屬性

完整的代碼應該看起來像

<form name="myform" ng-submit="formSubmit()" novalidate> 

     <input ng-model="fields.name.title" 
     placeholder="Enter your name" name="username" type="text" required> 

     <span ng-show="myform.username.$error.required && myform.$submitted">Invalid name</span> 

     <drop-down data="fields.levels" func='levelHandler'></drop-down> 

     <drop-down data="fields.stages" func='levelHandler'></drop-down> 

     <drop-down data="fields.colors" func='levelHandler'></drop-down> 

     <button type="submit">Submit Form</button> 

    </form> 
相關問題