我无法将form id
传递给views.py页面。
jQuery没有将'id'传递给views页面。请告诉我我做错了什么。
这是我的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']}>"
答案 0 :(得分:1)
你说你必须删除is_ajax()
方法,这显示实际上你根本没有看到Ajax帖子,而是标准的浏览器表单提交。这是因为您没有阻止jQuery代码中的默认提交操作。
应该是:
$('.chatroom').submit(function(event) {
event.preventDefault();
$.ajax({
...
答案 1 :(得分:0)
以下不是您的问题的原因,但会导致JS错误(语法错误):
$(function(){
$('.chatroom').submit(function () {
$.ajax({
type: "POST",
url: "/dashboard",
data : {
chatroom_id: $(this).attr('id')
} // you had a dangling comma here
});
}); // you were missing a closing bracket and paren here
});