1

Angular'da aşağıdaki gibi bir hata doğrulama yapıyorum.Özel Hata Doğrulama Mesajı Gösterilmiyor

Hata onaylaması beklendiği gibi ortaya çıkıyor, ancak özel mesaj çalışmıyor. Bunun yerine, aşağıdakileri alırım.

enter image description here

Bu güzel görünüyor ama nasıl benim özel mesajla bunu değiştiririm? Nereden geldiğini bilirsem iyi olur, böylece onu düzenleyebilirim. Ben

<option value="">Choose an option</option> 

çıkar sonra herzaman görünürse ek olarak

, benim özel mesaj görüntülenir. Bu neden?

+0

Eğer çalıştırılabilir demo/parçacığını paylaşabilir miyim veya [JSFiddle] (https://jsfiddle.net/)? – Rayon

cevap

0

Working Plnkr

Sen form gönderme üzerinde space ile belirli alanın HTML5 doğrulama mesajı yerini alabilir. Mesajın görüntülenmesini engeller ve diğer HTML5 doğrulama mesajını etkilemez.

JavaScript:

$scope.ValidateInput = function(){ 
    var email = document.getElementById("colorId"); 

  if (email.validity.valueMissing) { 
     email.setCustomValidity(" "); 
  } else { 
     email.setCustomValidity(""); 
    } 
    } 

HTML:

<form name='serviceForm'> 
     <select name='color' id='colorId' ng-model = "color" class = "form-control" 
    ng-options = "color as color for color in colors" required> 
     <option value="">Choose an option</option> 
     </select> 

    <span ng-show="serviceForm.color.$error.required"> My custom error message </span> 
    <input type='submit' ng-click='ValidateInput()' value='Submit'> 
</form> 
+0

seçmemi istiyor, her zaman bu plnkr içinde görünmesini, bunu düzeltmek için? Varsayılan –

+0

üzerinde görünmemelidir. Cevabımı ve plunkr güncellendi, lütfen kontrol edin. –

2

Bu ileti büyük olasılıkla tarayıcınızdan form validaten yaptığı gibi gelir.

Bunu devre dışı bırakmak için forma novalidate niteliğini eklemek zorunda:

<form novalidate> 
+0

teşekkürler, ancak bunu istemiyorum, çünkü bu, istemci tarafında doğrulamayı devre dışı bırakacak mı? –

+0

Gönderilene kadar formun gönderilmesini istemiyorum –

+0

Kendi geçerliliğinizi eklediniz, bu nedenle doğrulamadan önce göndermemelisiniz. Bir sebepten dolayı – str

0
<select ng-model = "color" class = "form-control" name="lstColor" 
    ng-options = "color as color for color in colors" data-msg-required="Please select color from list" required> 
    <option value="">Choose an option</option> 
</select> 

yukarıda deneyin ve umut bu mesajları engellemek için kullanılabilir sorununuzu

+0

bu sorunu çözmemeliyse –

+0

düzeltin. doğru başvurma veya yapma. Yukarıdakini genişletilmiş JS formatında nasıl yazabilirsiniz .. – Own

+0

($ (form) .valid() == false) {$ (form) .validate ({rules: {lstColor: {required: true}}, mesajlar {lstColor: {required: "Lütfen bir renk seçin"}}); – Own

0

<form novalidate> çözecektir.

Ayrıca, özel iletinizle değiştirmek için oninvalid olay meydana geldiğinde setCustomValidity işlevini de kullanabilirsiniz.

gibi:

<input class="form-control" type="email" required="" placeholder="username" oninvalid="this.setCustomValidity('Please Enter valid email')"></input> 

Yardımcı açıklama here.

+0

novalidate, birlikte istemci tarafında doğrulamayı devre dışı bırakmaz mı? –

+0

ve bu yaklaşımla ilgili bir sorun, ben bir seçenek seçtikten sonra bile, hata onaylama tanımıyor ve hala bir hata düzeltmek için bana bir –

İlgili konular