2015-04-14 190 views
0

我正在使用angularjs提交一個非常簡單的表單... 我必須在我的表單中插入數字代碼。該代碼必須驗證服務器端,調用外部服務。當我得到承諾時,我想檢查代碼是否正確。 如果代碼是不正確的,我想設置一個紅色邊框的文本框,並顯示一條消息......這裏的HTMLAngularJs服務器端驗證

<input name="code" type="text" style="width:155px;" data-ng-model="Codice" 
    data-ng-required="true" data-ng-pattern="/^(\d){22}$/" data-ng-model-options="{ updateOn: 'mousedown blur' }" /> 

<span data-ng-show="myform.code.$error.pattern" class="error">Codice non valido</span> 

現在我讓你看看我在控制器裏做

if (response.Result == "1") 
{ 
    myform.code.$error.pattern = true; 
} 

這樣,我剛剛看到消息,但文本框的邊框保持黑色......所以我tryed:

if (response.Result == "1") 
{ 
    myform.code.$setValidity('mismatch',false); 
} 

但這種方式,即使我修改代碼,模型保持「不是val ID「,所以我不能做一個職位了......

任何解決方案? 感謝名單

回答

1

在你的HTML創建自定義的驗證一個跨度

<span class="help-block" ng-show="myform.name.$error.ntValidName">Not valid name</span> 

並在控制器中設置這樣的有效性,若無效,則

myform.name.$setValidity("ntValidName", false); 

這樣,你可以創建自定義的驗證

+0

謝謝..我錯誤的驗證名稱...在控制器中我稱之爲「不匹配」..在視圖「模式」 – Ciccio

+0

雅我看到,但我認爲你所顯示的html代碼是針對第一種情況的,而且你可能已經修改了第二種情況下的html。 – Anita

+0

我只想使用一個跨度......但認爲使用兩種不同跨度要好得多...... – Ciccio