2013-07-22 5 views
0

Я не могу передать form id на страницу views.py. jQuery не передает идентификатор 'id' на страницу представлений. Пожалуйста, скажите мне, что я делаю неправильно.Как получить идентификатор формы в jQuery

Вот мой 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

вы должны удалить последний, 'после' data' закрывающая скобка –

+0

ли вы проверили исходный код страницы? вы получаете значение '{{key}}'? –

+0

Нет. Не происходит. –

ответ

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 
}); 
+0

Я заметил, что ошибка опечатки ранее, но все же я не могу получить результат из него. Любые предложения, пожалуйста, –

1

Вы говорите, что вы должны удалить is_ajax() метод, который показывает, что на самом деле вы не видите пост Ajax вообще, но стандартное представление формы браузера. Это связано с тем, что вы не предотвратили действие отправки по умолчанию в вашем коде jQuery.

Оно должно быть:

$('.chatroom').submit(function(event) { 
    event.preventDefault(); 
    $.ajax({ 
     ... 
+0

Выполнено. Все еще не получается 'is_ajax() = True'. Любые идеи, почему ??? –

Смежные вопросы