首页 > 解决方案 > 没有使用 AJAX 刷新页面的 Django

问题描述

当老师更新学生行为时,弹出消息“更新成功”,

在我的情况下,当老师更新学生行为时,页面显示为空白

我错过了什么 ?请检查我的返回 HttpResponse('')是否正确以及我的脚本。

在此处输入图像描述

这是来源https://www.youtube.com/watch?v=KgnPSmrQrXI

<form method="POST" id="DogForm" action="/Updatestudentbehavior/"  class="myform" style="width: 100%" enctype="multipart/form-data">{% csrf_token %}
    <table class="tblcore">
    <input type="text" value="{{teacher}}" name="teacher" id="teacher">
        {% for students in student %}
        <tr>
            <td colspan="2"><input type="hidden" value="{{students.id}}" >{{students.Students_Enrollment_Records__Students_Enrollment_Records__Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Lastname}} {{students.Students_Enrollment_Records__Students_Enrollment_Records__Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Firstname}}</td>
            {% for corevalues in studentsbehaviorgrade %}
            <td colspan="4">
                <input type="hidden" value="{{corevalues.id}}" name="id" id="student">
                 <select name="Marking" id="marking">
                     <option value="{{corevalues.Marking.id}}" >{{corevalues.Marking.id}}-{{corevalues.Marking.Marking}}</option>
                     {% for behaviors in behavior %}
                        <option value="{{behaviors.id}}">{{behaviors.id}}-{{behaviors.Marking}}</option>
                     {% endfor %}
                 </select>
             </td>
            {% endfor %}
        </tr>
        {% endfor %}
    </table>
    <input type="submit" value="Update">
</form>

这是我的脚本

<script type="text/javascript">
   $(document).on('submit', '#DogForm', function(e) {
      e.preventDefault();
        $.ajax({
            type:'POST',
            url:'/Updatestudentbehavior/'
            data:{
                teacher:$('#teacher').val(),
                student:$('#student').val(),
                marking:$('#marking').val(),
                csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val()
            },
            success:function(){
                alert('Update Success');
            }
        });
   });
</script>

我的意见.py

def Updatestudentbehavior(request):
    .....
    return HttpResponse('')

网址.py

path('Updatestudentbehavior/', Homepage.views.Updatestudentbehavior, name='Updatestudentbehavior'),

当我尝试这个时更新

def Updatestudentbehavior(request):
    .....
    return HttpResponse('Success')

我收到了这个

在此处输入图像描述

它没有调用我在 html 中创建的 ajax 我尝试尝试 console.log

<script>
$(document).on('submit', '.myform', function(e) {
      e.preventDefault();
      console.log(this);
..
</script>

这是结果

在此处输入图像描述

标签: pythondjangoajax

解决方案


您的事件处理程序是一个空函数,因为您有语法错误。更改以下行:

$(document).on('submit', '#DogForm', function(e)){
...
}

$(document).on('submit', '#DogForm', function(e) {
...
})

推荐阅读