2009-08-17 6 views
0

J'utilise xVal combind avec le plugin jquery.validate, mais j'ai rencontré un léger problème en affichant des messages de validation deux fois dans une certaine instance. Je pense que ce bug devrait être assez facilement corrigé avec quelques astucieux jQuery dans le placement du message d'erreur.Comment vérifier si un élément contient un autre élément dans jQuery

J'essaie de trouver un moyen de voir si un ul contient déjà un li avec du texte. Je pensais que quelque chose comme ce qui précède peut fonctionner, mais pas une telle chance. error.toString() ne fonctionne pas non plus.

Toute aide serait grandement appréciée.

Répondre

0

N'ayant pas ce plugin ici, je ne peux pas dire quelle est la propriété appropriée pour obtenir le texte d'erreur, mais vous pouvez utiliser Firebug pour faire un console.log de error et voir ce que c'est.

Vous devrez également placer des guillemets autour de la chaîne.

$("ul.errors:not(:contains('" + errorString + "'))") 

... et n'oubliez pas d'échapper pour les guillemets simples dans le message d'erreur!

+0

ouais, je viens de réaliser et de changer la réponse maintenant. :) – nickf

1

Donnez un coup d'oeil au sélecteur :has:

$("ul:has(li:contains('" + error + "'))") 

Le sélecteur ci-dessus sélectionnera les UL éléments qui ont un élément LI qui contient le texte error.

0

Qu'est-ce que error dans votre code?
D'abord, vous l'appelez une chaîne :contains(" + error + "), mais vous l'appelez ensuite un élément - .append(error);.
S'il s'agit d'un élément, essayez d'obtenir son texte en utilisant $(error).text(), et recherchez le texte dans ul.