当存在多个表单时,在javascript中存储特定值

当存在多个表单时,在javascript中存储特定值,javascript,python,html,django,Javascript,Python,Html,Django,我在每页上都有一个10-20个对象的列表,创建这些表单: <div id="routeTable"> {% for route in route_list %} <div id="routeDone"> <form class="doneForm" action="/route/complete/" method="post"> <input type="hidden" name="route_id" value="{{ ro

我在每页上都有一个10-20个对象的列表,创建这些表单:

<div id="routeTable">
  {% for route in route_list %}
  <div id="routeDone">
    <form class="doneForm" action="/route/complete/" method="post">
      <input type="hidden" name="route_id" value="{{ route.route_id }}" />
      <input type="hidden" name="next" value="{{ request.get_full_path }}" />
      <input type="submit" value="Done" class="doneButton" />
    </form>
  </div>
  {% endfor %}
</div>

{route_list%}中的路由为%
{%endfor%}
我正在尝试向页面添加一些jquery,以便拦截通常的表单提交,而是使用ajax,如下所示。(我已经有了一个返回html块的视图,该块将替换为上面的div#routeTable。问题是第4行“var route_ID…”:


$(文档).ready(函数(){
$(“.doneForm”).submit(函数(){
var route_id=$(this.attr('input[name=route_id')).val()
$.ajax({
类型:“post”,
url:“/route/complete/”,
数据:路由id,
成功:功能(数据){
$(“#路由表”).html(数据);
}
});
返回false;
});
});
不幸的是,我无法将正确的route_id传递到名为route_id的js变量中。我希望它需要使用'this'关键字,但我还不能确切地知道如何传递

任何关于如何修复我的javascript的建议都将不胜感激。

尝试更改

var route_id = $(this).attr('input[name=route_id]').val()

原因是
input[name=route\u id]
不是一个属性,而是一个选择器,它表示一个标签
input
和该标签上的一个属性
[name=route\u id]

你也可以这样做

var route_id = $('input[name=route_id]',this).val()
应该是这样的:

var route_id = $(this).find('input[name=route_id]').val()
var route_id = $('input[name=route_id]',this).val()
var route_id = $(this).attr('input[name=route_id]').val()
var route_id = $(this).find('input[name=route_id]').val()