2015-03-30 5 views
-1

У меня есть форма, в которой я хотел, чтобы кнопка «Отправить» имела всплывающее окно, чтобы спросить у пользователя, уверены ли они, что они хотят отправить форму с параметрами «ОК» 'и' cancel '. Казалось, что это работает на всех моих других формах, но этого нет. Вместо того, чтобы показывать всплывающее окно и запрашивать у пользователя подтверждение, оно просто отправляется.Django OnClick Submit Button, не показывающий подтверждение всплывающего окна

Удивление, если это может быть из-за столкновения с JS или другой части логики в виде ...

Код:

{% extends "prod/page_base.html" %} 

{% load dajaxice_templatetags %} 
{% load static %} 

{% block title %}{{ edit_add }} product configuration{% endblock %} 

{% block dajax %} 
    {% dajaxice_js_import %} 
    <script src="{% static 'dajax/jquery.dajax.core.js' %}"></script> 
{% endblock %} 

{% block script %} 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    if ($("#id_line").val() != "group1" && $("#id_line").val() != "group2") { 
     $("#group_fields").hide(); 
    } 
    $("#id_line").click(function() { 
     if ($("#id_line").val() != "group1" && $("#id_line").val() != "group2") { 
      $("#group_fields").hide(); 
     } 
     else { 
      $("#group_fields").show(); 
     } 
    }); 
}); 
</script> 
{{ form.media }} 
{% endblock %} 

{% block pagetitle %}{{ edit_add }} Product Configuration{% endblock %} 

{% block page_content %} 

{% if form.errors or formset.errors %} 
<p class='error_note'><strong>Please correct the error{{ form.errors|pluralize }} below.</strong></p> 
{% endif %} 

    <form class="edit" method="post" enctype="multipart/form-data">{% csrf_token %} 
     {{ form.non_field_errors }} 
     <p> 
     {{ form.name.errors }} 
     <label for="id_name">Product Name:</label> 
     {{ form.name }} 
     </p> 
     <p> 
     {{ form.line.errors }} 
     <label for="id_line">Product Line:</label> 
     {{ form.line }} 
     </p> 
     <div id="group_fields"> 
     <p> 
     {{ form.type.errors }} 
     <label for="id_type">Type:</label> 
     {{ form.type }} 
     </p> 
     </div> 
     <p> 
     {{ form.reason_for_change.errors }} 
     <label for="id_reason_for_change">Reason for change (mandatory):</label> 
     {{ form.reason_for_change }} 
     </p> 
     <input class="button" type="Submit" value="Commit changes" onclick="return confirm('Submit changes?')"> 
    </form> 

{% endblock %} 
+0

Что означает 'подтверждения()' функция выглядит? – rnevius

ответ

0

Из того, что я знаю JS, вы можете 't действительно делаю это с кнопкой отправки. Таким образом, лучшим вариантом является замена кнопки отправки обычной кнопкой и передача через функцию JS.

Для этого вам нужно будет предоставить форме идентификатор:

<form id="form1" class="edit" method="post" enctype="multipart/form-data">{% csrf_token %} 
    {{ form.non_field_errors }} 
    <p> 
    {{ form.name.errors }} 
    <label for="id_name">Product Name:</label> 
    {{ form.name }} 
    </p> 
    <p> 
    {{ form.line.errors }} 
    <label for="id_line">Product Line:</label> 
    {{ form.line }} 
    </p> 
    <div id="group_fields"> 
    <p> 
    {{ form.type.errors }} 
    <label for="id_type">Type:</label> 
    {{ form.type }} 
    </p> 
    </div> 
    <p> 
    {{ form.reason_for_change.errors }} 
    <label for="id_reason_for_change">Reason for change (mandatory):</label> 
    {{ form.reason_for_change }} 
    </p> 
    <input class="button" value="Commit changes" onclick="confirm('Submit changes?')"> 
</form> 

JS:

function confirm(str){ 
    confirm = window.confirm(str); 
    if (confirm == true){ 
     document.getElementById('form1').submit(); 
    } 
} 
Смежные вопросы