2010-11-14 47 views
1

J'ai un problème étrange qui n'affecte que les navigateurs webkit, j'ai écrit un petit plugin jQuery qui s'occupe de la validation et applique des classes d'état pour un style CSS facile mais il ne touche pas l'attribut id.Le plugin jQuery form fonctionne dans Firefox & IE, mais ajoute un ID invalide aux formulaires webkit?

Cependant dans Safari 5 et Google Chrome pour Mac le formulaire est attribué id="[object HTMLInputElement]" qui brise la forme ...

J'ai essayé d'isoler la question en commentant les lignes du plugin jQuery, mais cela ne me mènera nulle part .

Je semble aussi avoir trouvé que, en supprimant la ligne suivante à partir d'un groupe de CMS (ExpressionEngine) a généré des champs cachés résout ce problème:

<input type="hidden" name="id" value="freeform" />

mais pour des raisons évidentes je ne peux pas enlever cette ligne de le code (généré par cms) aussi si je laisse la ligne dans la source et désactiver mon script il ne se casse pas donc il semble être un problème spécifique avec cette ligne de html, mon plugin et webkit.

Toute aide serait grandement appréciée, j'ai déjà passé près d'une journée à essayer cette chose mais je n'arrive pas à la réparer.

Voici un jsFiddle je installation qui montre ce problème: http://jsfiddle.net/jannis/5CMdP/

Il fonctionne très bien dans la non-webkit, mais dans WebKit quand on regarde la forme dans le cadre de sortie en bas à droite, vous remarquerez la forme ayant la attribut d'identifiant invalide.

Merci de bien vouloir vérifier.

Très apprécié.

Jannis

+0

Copie le code de votre violon dans un exemple autonome semble fonctionner correctement. – rwilliams

Répondre

2

Certainement un bug 1.4.3, voir ici:

http://bugs.jquery.com/ticket/7212

(Bug) trouver() à l'échec lors de la sélection des formes contenant des entrées nommées « id »

son familier? :)

Voir ici pour un patch si vous souhaitez continuer à utiliser 1.4.3 (son Sizzle):

https://github.com/jeresig/sizzle/commit/b758239

+0

Merci pour l'aide! Yup qui l'a réparé. – Jannis

+0

Pouvez-vous expliquer comment patcher le fichier jquery 1.4.3 min avec sizzle? – Addy

+0

@ so1o, ce repo sizzle semble avoir disparu de l'Internet, donc votre meilleur pari peut-être juste mettre à jour votre jQuery à la dernière version et voir si elle est réparée. – Ryley

2

On dirait qu'il est un bug dans la version de jQuery le violon utilise. Passer à 1.4.4 résout le problème.