当存在多个表单时,在javascript中存储特定值
我在每页上都有一个10-20个对象的列表,创建这些表单:当存在多个表单时,在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
<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()