HemalHerath
HemalHerath

Reputation: 1056

How to use JavaScript in Django html file for error messages?

In my html template have error messages for form validation like below:

{% for field in form %}
    <span class="text-danger small">{{ field.errors }}</span>
{% endfor %}

If I want to use sweet alert for that how can I do it

If I use like below it will give a empty alert when page loads but when the error happens it will give an empty alert like the when pages loading how can I pass those data into sweet alert what did I do wrong?

{% for field in form %}
    <span class="text-danger small">{{ field.errors }}</span>
    <script>
      var a = "{{ field.errors }}"
      swal(a)
    </script>
{% endfor %}

Upvotes: 0

Views: 1500

Answers (2)

CodeforCore
CodeforCore

Reputation: 691

Form errors are provided by form.errors in django so, insert error in dict errordict={} and return errordict to template

In views.py

errodict={} 
   for f in form.errors:
             self.errordict[f] = '.'.join(form.errors[f])

In template

 {% if errodict %}
                            <script>
                            var r="{{ errodict }}";
                            alert('error:'+r)
                            </script>
                            {{ errodict}}
      {% endif %}

Upvotes: 0

Karthik Raja
Karthik Raja

Reputation: 129

Error has occurred because the error message with double quotes is enclosed within double quotes.

You can either enclose it in template literal or single quotes to execute without error.

var a = `<ul class="errorlist"><li>Enter a valid email address.</li></ul>`;
console.log(a);

Upvotes: 1

Related Questions