从表单提交Javascript/Django中提取ID的更好方法

从表单提交Javascript/Django中提取ID的更好方法,javascript,jquery,django,forms,post,Javascript,Jquery,Django,Forms,Post,目前,我所编写的代码工作正常,但它似乎相当粗糙。基本上,以下是我的(简化): JQuery就绪: <script type="text/javascript"> $(document).ready(function() { $('div.partDelete').click(function() { // TODO this seems like a dirty hack var split = this.id.split(

目前,我所编写的代码工作正常,但它似乎相当粗糙。基本上,以下是我的(简化):

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>
HTML更改:

<div class="partDelete" data-id="{{ part.id }}">remove</div>
删除

首先;ID不应该以数字开头(http://www.w3.org/TR/html4/types.html#type-姓名)

除此之外,您通常会使用data-*属性来设置ID,以便从服务器端与JS通信。data-*属性可以是您想要的任何内容。因此数据foo=”“是一个有效的属性

示例:
HTML:

希望这有帮助


编辑:移动注释使其更清晰,更改示例使其更具体地针对OP的问题

首先;ID不应该以数字开头(http://www.w3.org/TR/html4/types.html#type-姓名)

除此之外,您通常会使用data-*属性来设置ID,以便从服务器端与JS通信。data-*属性可以是您想要的任何内容。因此数据foo=”“是一个有效的属性

示例:
HTML:

希望这有帮助


编辑:移动注释使其更清晰,更改示例使其更具体地针对OP的问题

谢谢!毕竟,我不需要使用
。每个
函数。我简直不敢相信我从来都不知道
data-*
属性!谢谢毕竟,我不需要使用
。每个
函数。我简直不敢相信我从来都不知道
data-*
属性!
$('div.partDelete').click(function() {
    var selected_id =$(this).data("id");
    $('#part_id').val(selected_id);
    $('#removePartForm').submit();
});
<div class="partDelete" data-id="{{ part.id }}">remove</div>
<div class="item" data-id="{{ part.id }}">
    <p>Foo</p>
</div>
$(function () { // same as document read

    $(".button-class").on("click", function () {
        // Here "this" will be the element
        var id = $(this).data("id"); // same as getting attribute data-id
        // Could also use $(this).attr("data-id")
    });
});