2010-08-28 12 views
0

Je génère dynamiquement des formulaires avec des entrées masquées dans une page Web en utilisant des modèles django, qui doivent être soumis en cliquant sur une étiquette de texte associée. Le problème est que je ne peux tout simplement pas le faire fonctionner.Soumettre le formulaire en javascript en utilisant le formulaire

{% for tag in tags %} 
<form name="remove_{{ tag }}" id="{{ tag }}" action="/filter" method="post" accept-charset="utf-8"> 
    <input type="hidden" name="remove_tag" value ="{{ tag }}" /> 
</form> 

<a href="javascript: remove_tag({{ tag }})">{{ tag }}</a> 
{% endfor %} 

<script type="text/javascript"> 
    function remove_tag(tag) { 
     document.getElementById(tag).submit(); 
     return false; 
    } 
</script> 

Ce code génère l'erreur javascript suivant: Uncaught TypeError: Impossible d'appeler la méthode 'submit' de null

J'ai aussi essayé de soumettre le formulaire en utilisant

document.forms[tag].submit(); 

(changer la forme name to tag), mais reçoivent à peu près la même erreur mais avec 'undefined' au lieu de null.

Dans le second exemple, il semble que la fonction javascript essaie d'interpréter 'tag' comme un entier. Si j'utilise un nombre entier cela fonctionne bien. Je pourrais utiliser le forloop.counter utilisé pour générer les formes en premier lieu, mais c'est plutôt moche et cela rend le code plus difficile à maintenir.

Existe-t-il une autre façon de faire appel à submit() sur les formulaires?

Répondre

1

Citations:

<a href="javascript: remove_tag('{{ tag }}')">{{ tag }}</a> 

La valeur "tag" doit être correctement cité l'extrait de code Javascript pour être syntaxiquement correct.

+0

Trop facile;) Merci! – aspartame

Questions connexes