2014-09-17 1 views
2

J'ai un problème avec la validation sur un champ non requis. Quand quelqu'un active la validation sur ce champ, il ne peut pas être envoyé au serveur même si le champ est vide. Mon code html ressemble que:Il est possible d'utiliser la validation HTML5 sur des champs non obligatoires?

<form> 
    <input pattern=".{6,}" name="field" size="25" type="text" /> 
    <input type="submit" /> 
</form> 

Je également utiliser jQuery pour personnaliser un message de validation:

$(function(){ 
    $("input[name=field]")[0].oninvalid = function() { 
     this.setCustomValidity("Please enter at least 5 characters."); 
     this.setCustomValidity(""); 
    }; 
}); 
+0

'novalidate' ... – Petah

+0

Que voulez-vous dire par « quelqu'un active la validation sur le terrain »? Voulez-vous dire qu'ils inspectent l'élément et le mettent eux-mêmes? – Bono

+0

@peter Le drapeau novalidate n'est pas la solution de mon problème. Je ne veux pas désactiver complètement la validation. – user2799026

Répondre

0

Si je vous comprends bien, lorsque vous modifiez à nouveau le champ, alors vous setCustomValidity à vider et non dans le gestionnaire d'événements oninvalid. Essayez cette

$(function(){ 
    $("input[name=field]")[0].oninvalid = function() { 
     this.setCustomValidity("Please enter at least 5 characters."); 


    }; 

$("input[name=field]")[0].onchange = function() { 
     this.setCustomValidity(""); 
    };  

}); 
+0

Ce code ne fonctionne pas pour moi. – user2799026

+0

Ici http://jsfiddle.net/3taquptk/13/ – SSA

+0

Super! Ça marche! Merci! – user2799026

Questions connexes