【发布时间】:2012-03-27 11:26:29
【问题描述】:
目前我编写的代码可行,但看起来相当粗糙。基本上这就是我所拥有的(简化):
JQuery 准备好了:
<script type="text/javascript">
$(document).ready(function() {
$('div.partDelete').click(function() {
// TODO this seems like a dirty hack
var split = this.id.split('_');
if(split.length == 3) {
$('#part_id').val(split[0]);
alert($('#part_id').val());
$('#removePartForm').submit();
} else {
alert('There was a problem removing the selected part');
}
});
</script>
我使用的表格:
<form id="removePartForm" action="{% url remove_part %}" method="post">
<input type="hidden" id="part_id" name="part_id" value="-1" />
{% for part in current_build.parts.all %}
<div id="{{ part.id }}_part_id" class="partDelete">remove</div>
{% endfor %}
</form>
我要做的就是设置隐藏输入以获取用户选择的 part.id,以便我可以在我的视图中使用它。
据我所知,这是解决此问题的正确方法,但我只是感觉不是。我是 Django 和 JQuery 的新手,所以可能有一些我还没有找到的内置功能。
感谢您提出的任何建议!
解决方案(见下面 mikaelb 的回答)
Javascript:
$('div.partDelete').click(function() {
var selected_id =$(this).data("id");
$('#part_id').val(selected_id);
$('#removePartForm').submit();
});
HTML 更改:
<div class="partDelete" data-id="{{ part.id }}">remove</div>
【问题讨论】:
标签: javascript jquery django forms post