2017-09-29 10 views
0

J'essaie de récupérer des messages Flash et de les ajouter dans une zone de texte sur une page Web. La fonction fonctionne sans le code fourni par flask/flash, mais essayer de mélanger le code flash avec javascript ne fonctionne pas. J'appelle cette fonction avec un onclick = "get_flash();" L'onclick fonctionne sans le code flash intégré.Message Flash Flash ajouté à la zone de texte

head> 
<script type="text/javascript"> 
function get_flash(){ 
{% with messages = get_flashed_messages() %} 
    {{% if messages %} 
     {% for message in messages() %} 
      document.getElementById('msg_box').innerHTML+={{message}}; 
     {% endfor %} 
    {% endif %} 
{% endwith %} 
} 
+0

Avez-vous essayé 'messages' sans les parenthèses? – Mangohero1

+0

Je l'ai fait. Pas de changement. Je coupe une ligne à la fois de la fonction pour voir quelle ligne est problématique. La fonction devient indéfinie même avec la première ligne comme seule ligne. La fonction fonctionne si je ne laisse que dans la seule ligne document.getElement. – creeser

Répondre

1

Votre code mène à une erreur d'identification inattendue. Mettez des citations autour de votre variable {{message}}.

{% with messages = get_flashed_messages() %} 
    {% if messages %} 
     {% for message in messages %} 
      document.getElementById('msg_box').innerHTML += "{{message}}"; 
     {% endfor %} 
    {% endif %} 
{% endwith %} 
+0

N'a pas aidé. Je reçois: TypeError, l'objet 'function' n'est pas itérable dans le débogueur VSC. – creeser

+0

Supprimer les parenthèses, devrait être '{% pour message dans les messages%}' – Mangohero1

+0

Ne pas obtenir une erreur dans le débogueur VSC maintenant. La fonction get_flash n'existe pas dans le débogueur du navigateur lorsque onclick = "get_flash()" est exécuté. Le code est identique à celui affiché ci-dessus, sauf que() sont supprimés des messages. – creeser