[英]Angular JS ng-form Email validation before the data binding
我有一個Angular JS表單,如下所示:
<div ng-controller="EmpController as empVm"
name="formEmployee" ng-form >
<div>
<div class="col-sm-5">
Email
</div>
<div class="col-sm-7">
<input type="email" validate-length ng-maxlength="2000"
ng-model="empVm.profileData.email" name="email"
ng-pattern="^[_a-zA-Z0-9]+(\.[_a-zA-Z0-9]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$"/>
<div ng-show="(formEmployee.email.$dirty || formEmployee.email.$touched) && formEmployee.email.$invalid">
<span ng-show="!formEmployee.email.$error.pattern">Invalid Email</span>
</div>
</div>
</div>
</div>
即使電子郵件字段中包含有效的電子郵件,該表單也始終無效。 一旦我與電子郵件文本框進行交互(例如更改電子郵件文本框中的某些文本),該表單將再次變得有效。
我要達到的目的是,一旦從服務調用中綁定了值,表單就應該驗證電子郵件文本框的數據,並且頁面加載后表單應該有效(如果有效的話),否則表單應該是無效的,並且上面的div其中應顯示無效的電子郵件。
span
指定Invalid Email
不會被關閉。 ng-pattern
的值應該是$scope
/ vm
對象或原始字符串(即,引號之間)。 frmAgentProfile
來自何處。 我在ng-pattern
起作用的小提琴中推送了您的代碼。
來自后端服務調用的數據在電子郵件的末尾帶有一個空格字符 ,正則表達式失敗,並且在UI的文本框中看不到該空格,這就是該表單變得無效的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.