jQuery Validation formulaire.valide() renvoie toujours true
J'ai une situation lorsque j'essaie de vérifier si un formulaire est valide, mais la forme.valide() retourne toujours true. Mais si je tente de valider le contrôle individuel, elle retourne false.
C'est mon formulaire:
<div class="profilestagsedit">
@using (Html.BeginForm("", "", FormMethod.Post, new { id = "tagsform" }))
{
@Html.ValidationMessageFor(x => x.EditTagsText)
@Html.TextBoxFor(p => p.EditTagsText, new
{
@id = "txtprofileedittags"
})
}
</div>
C'est mon viewmodel:
[Required(AllowEmptyStrings = false, ErrorMessage = "Please enter at least one Tag ")]
public string EditTagsText { get; set; }
C'est le jQuery code:
$('#tagsform').removeData("validator");
$('#tagsform').removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse('#tagsform');
$('#tagsform').validate();
Et sur le bouton enregistrer, cliquez sur:
var isValid = $('#tagsform').validate().element($('#txtprofileedittags')); <-- false
$('#tagsform').valid() true <--
Je tiens la forme.valide() retourne false en tant que bien, ce que je fais mal?
peut-être vous devriez ajouter "nécessaire" à l'entrée
OriginalL'auteur user636525 | 2013-12-19
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter requis à l'entrée
Voir le travail de démonstration ici
Pour discrète HTML 5-compatible attributs décrivent les validateurs pour être connectée à l'entrée des champs
data-val="true"
.Voir plus d'informations ici
je n'ai pas dit attribut obligatoire est en partie discrète de validation. J'ai juste dit "Pour discrète HTML 5-compatible attributs décrivent les validateurs pour être connectée à l'entrée de données de champs-val='true'. Et la démo ne fonctionne pas parce que le jquery de validation de l'emplacement du fichier source n'est plus là. Aurait pu se servir de la console pour le vérifier. Je vais vérifier si il est tout valider cdn disponible de Toute façon je vous remercie de votre réponse.
Ont changé la validation de la can. Veuillez vérifier la démo maintenant.
Cette juste valide la même chose d'une manière différente. Il ne résout pas le problème signalé avec discrète de validation. Plus d'infos lien est intéressant, mais c'est un long post de blog et je ne pouvais pas voir comment il a sauvegardé cette réponse.
OriginalL'auteur Nouphal.M
La question a déjà accepté de répondre, mais je crois que j'ai trouvé plus de réponse spécifique. J'ai trouvé que si la PREMIÈRE validé élément dans le formulaire a un nom de balise puis tout fonctionne comme vous le souhaitez (c'est-à-dire .valide() retourne false si le formulaire n'est pas valide). La accepté de répondre à votre disposition un "name" de la balise et donc il a travaillé.
Dans les formes normales, vous avez certainement besoin d'étiquettes de nom, parce que c'est ce qui est utilisé lorsque les données sont envoyées au serveur. Mais dans un environnement plus moderne, tels que ceux utilisant le knock-out, il n'y a aucune raison d'avoir un " nom " de la balise, parce que la liaison de données pour conserver votre modèle de données mise à jour.
OriginalL'auteur Michael Bray
Je faisait référence à deux fichiers:
à supprimer la référence à jquery.validate.unobstrusive.js, il fixe pour moi
espère que cela aide quelqu'un
OriginalL'auteur Carlos R Balebona