前提是函数和相应的视图路由都已经配置好了,然后就是表单了:
<form ?id="SmsForm" method="post" class="a"> ???????????{% csrf_token %} ???????????<div class=""> ???????????????<input class="" name="name" id="name" type="text" placeholder="请输入用户名"> ???????????</div> ???????????<div class="form-group"> ???????????????<input type="text" onfocus="(this.type=‘time‘)" id="pick_time" name="time" placeholder="请输入时间" > ???????????</div> ???????????<div class="form-group"> ???????????????<input class="" name="addr1" id="addr1" type="text" placeholder="请输入地址1"> ???????????</div> ???????????<div class="form-group"> ???????????????<input class="" name="addr2" id="addr2" type="text" placeholder="请输入地址2"> ???????????</div> ???????????<div class="form-group"> ???????????????<input class="form-control" name="tel" id="tel" type="text" placeholder="请输入电话"> ???????????</div> ???????????<input class="b" type="button" value="预览短信" onclick="send_sms(‘check‘)"/> ???????????<input class="b" type="button" value="发送短信" onclick="send_sms(‘send‘)"/> ???????</form>
???<script src="/static/js/jquery.min.js"></script><script> ???$(‘#pick_time‘).blur(function(){ ???var obj = $(this); ???if(!obj.val()){ ???????obj.prop(‘type‘,‘text‘); ???}});function ?send_sms(work_operation) { ???var data={}; ???????data[‘status‘] = work_operation; ???var params = $(‘#SmsForm‘).serializeArray(); ???for (x in params){ ???????data[params[x].name] = params[x].value; ???} ???$.ajax({ ???????type:"POST", ???????url: "{% url ‘managing:get_sms_message‘ %}", ???????data: data, ???????dataType: "json", ???????success: function (response) { ???????????document.getElementById("get_sms_message").textContent = response.message; ???????}, ???????error: function (rs, e) { ???????????alert(rs.responseText); ???????} ???});}</script>
首先生成一个data字典,然后将参数作为窗台传入字典当中,接着将表单的数据传到一个params的变量里面,这个方法我也是在网上找的,大概的意思应该是将表单数据以数组的形式序列化,然后就是遍历params这个变量,依次将表单数据传入data,最后将data放到POST的data里面,后面的就是视图接收数据,依据不同的的传入参数编写检验函数和发送函数就可以了。
django中使用AJAX时如何获取表单参数(按钮携带参数)
原文地址:https://www.cnblogs.com/zzy0306/p/8892107.html