Saya memiliki formulir Angular JS seperti di bawah ini:

<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>

Meskipun bidang email memiliki email yang valid, formulirnya selalu tidak valid. Setelah saya berinteraksi dengan kotak teks email seperti mengubah beberapa teks di kotak teks email, formulir menjadi valid lagi.

Apa yang saya coba capai adalah, formulir harus memvalidasi data untuk kotak teks email setelah nilainya diikat dari panggilan layanan dan formulir harus valid setelah halaman dimuat jika itu email yang valid, formulir lain harus tidak valid dan div di atas yang memiliki pesan email yang tidak valid akan muncul.

0
Koushik Ravulapelli 17 Agustus 2017, 23:45

2 jawaban

Jawaban Terbaik

Data yang berasal dari panggilan layanan back end memiliki karakter spasi di akhir email yang regexnya gagal dan spasi itu tidak terlihat di kotak teks pada UI dan itulah alasan mengapa formulir itu menjadi tidak valid.

0
Koushik Ravulapelli 21 Agustus 2017, 19:05
  1. span yang menetapkan Invalid Email tidak ditutup.
  2. Nilai dalam ng-pattern harus berupa objek $scope/vm atau string mentah (yaitu di antara tanda kutip).
  3. Pola email sepertinya tidak lengkap.
  4. Dalam contoh Anda, kami tidak tahu dari mana frmAgentProfile berasal.
  5. Anda berbicara tentang panggilan layanan, kami tidak memiliki informasi tentang itu. Jika Anda ingin memvalidasi dari panggilan layanan, Anda harus membuat validator asinkron khusus.

Saya mendorong kode Anda di biola tempat ng-pattern berfungsi.

DI SINI

0
Ludovic Guillaume 17 Agustus 2017, 21:57