【发布时间】:2013-07-22 22:10:37
【问题描述】:
我无法将form id 传递给views.py 页面。
jQuery 不会将“id”传递给视图页面。请告诉我我做错了什么。
这是我的 jQuery。
$(function(){
$('.chatroom').submit(function () {
$.ajax({
type: "POST",
url: "/dashboard",
data : {
'chatroom_id' : $(this).attr('id')
},
});
});
这是我的模板
{% for key, values in chat_data.items %}
<div class="container-fluid" alt = {{key}}>
<div class="row-fluid">
<div class="span2">
{{values.from}} <br/> {{values.init_query}}
</div>
<div class="span10 well">
{% for k in values.chat %}
<label> Text : {{k.text}} </label>
<label> {{k.date_time}} </label>
{% endfor %}
<form action = "#" method = "POST" id = {{key}} class="chatroom">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value = "Sent" class="btn btn-primary">
</form>
</div>
</div>
</div>
{% endfor %}
Views.py
if request.is_ajax():
if request.method == "POST":
chatroom_id = request.POST['chatroom_id']
else:
chatroom_id =''
print chatroom_id
当我删除 if request.is_ajax() 条件时,它会显示错误消息 "Key 'chatroom_id' not found in <QueryDict: {u'reply': [u''], u'csrfmiddlewaretoken': [u'yIJct9O7WfyPnWmDosW9N5TEklRwoIHP']}>"
【问题讨论】:
-
你应该删除
data右括号之后的最后一个, -
你检查页面源了吗?你得到
{{key}}值了吗? -
@KhawerZeshan- 是的,页面源中存在键值。请有任何建议
-
是的@KhawerZeshan- 键值确实存在。并且表单 id 有它。
-
你需要阻止默认提交动作
e.preventDefault()
标签: jquery django django-views