現在、私がコーディングしたものはうまく機能していますが、それはかなり粗雑です。基本的にここで私は(簡体字)しているものです:フォーム提出からIDを引き出すためのより良い方法Javascript/Django
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>
ありがとうございます!結局 '.each'関数を使う必要はありませんでした。私は 'data- *'属性について知りませんでした! –