2010-03-08 2 views
0

J'ai une case à cocher qui, quand on clique dessus, soumet le formulaire au serveur pour stocker le détail. Tout fonctionne bien, sauf que, après que le formulaire est soumis, je mets à jour un div à dire soumis mais la case à cocher n'est pas cochée. La page n'est pas rafraîchie bien sûr et lors de l'actualisation de la page, elle est cochée.Case à cocher ne pas être cochée lors de l'exécution de la fonction

Je pensais que je pourrais être en mesure de vérifier la boîte moi-même que j'utilise jQuery mais j'ai beaucoup de ces cases à cocher avec un nom dynamique, donc je ne sais pas comment je les appellerais. Je pensais quelque chose comme:

$('input[name=("favourite" + id)]').attr('checked', true); 

peut fonctionner mais pas de chance. Si je n'appelle pas la fonction sur la case cochée, la case à cocher se comporte normalement.

Merci pour tout ce qui pourrait aider.

+0

Vous n'avez pas fourni tous les détails, alors je parierais sur Door Number 2 et devinez que vous avez une faute de frappe dans l'ID/le nom du champ. Peut-être quelque chose d'aussi simple qu'un '-' au lieu d'un '_'. Ca m'arrive tout le temps. –

+0

Juste vérifié et je récupère la valeur de la case à cocher en utilisant quelque chose de similaire document.getElementsByName ("favori" + id), donc je ne pense pas que c'est ça. Je peux poster plus de code si vous voulez mais je ne pense pas que cela fera autre chose que de confondre les gens. Pensez juste que je peux le résoudre en corrigeant la ligne publiée d'une manière ou d'une autre. Je fais cela juste en dessous de $ ('# msg' + id) .html ("Soumis") et cela fonctionne très bien. – Rudiger

Répondre

1

Vous devez casser la chaîne afin d'introduire la valeur de la variable id dans votre sélection, vous pouvez le faire comme ceci:

$('input[name="favourite' + id + '"]').attr('checked', true); 
+0

Yup, c'était grâce. J'utilise rarement Javascript :( – Rudiger

1

Essayez de faire

$('input[name=("favourite" + id)]').checked = true; 

à la place.

Le problème est peut-être que la définition de l'attribut n'est pas automatiquement interprétée par votre navigateur comme modifiant la propriété DOM. C'est un peu déroutant, mais sur les navigateurs comme Firefox, etc., les attributs HTML et les propriétés DOM sont stockés séparément (la plupart sont nommés de la même manière, mais il y a des exceptions - l'attribut class étant représenté par la propriété className).

La modification des propriétés affecte le comportement des éléments, tandis que les attributs n'ont pas toujours le même effet. Dans certains navigateurs, ils sont analysés uniquement lors du rendu initial.

+0

Aussi $ ('input [nom = ("favori" + id)]'). Attr ('vérifié', 'vérifié'), pourrait vous donner de meilleurs résultats car l'attribut vérifié est censé être une chaîne.Cependant, j'ai la méthode ci-dessus fonctionne plus régulièrement. – Josiah

+0

Essayé, n'a pas fonctionné :( – Rudiger

Questions connexes