禁止单击Djangotable2的标题元素

2024-10-17 00:23:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从数据库中获取一些数据,并使用django-table2将其显示给用户。我的应用程序需要用户选择任何一行,并在此基础上,我加载一个不同的页面与数据相关的行在最后一页中选择。为了让这个工作,我使用了两个隐藏的字段谁的值将被设置时,我点击一些行,这将被传递到服务器端进行进一步的处理。。你知道吗

我面临的问题是,当我单击行时,它会将隐藏字段设置为正确的值,但如果我单击表的标题,一切都会变得一团糟。为了允许单击表后返回,我在form标记中使用了{{render_table table_name}}。。你知道吗

我的表格.py

class testTable(tables.Table):  // Have used orderable=False for all the rows
  release_date = tables.Column(verbose_name="Release date",orderable=False)  
  product_name = tables.Column(verbose_name="Product name",orderable=False)  
  ...  
  class Meta:
  orderable = False

视图.py

 table = productTable(dic)  
 table.paginate(page=request.GET.get('page', 1), per_page=5)  
 params['table'] =table  

产品.html

 <div>  
    <form method="POST" name="form-product-list" action="{% url "product" %}" id="form-product-list" enctype="multipart/form-data">  
        <input type="hidden" name="prod_ver" value="0" id="prod_ver" />  
        <input type="hidden" name="release_date" value="0" id="release_date" />   
        {% render_table table %}  
    </form>  
</div>  

Javascript

 function addRowHandlers() {  
        var table = document.getElementById("prod_details");  
        var rows = table.rows;  
        for (var i = 0; i < rows.length; i++) {  
            rows[i].onclick = (function() {  
            return function() {  
                $("#prod_ver").val(this.cells[1].innerHTML);  
                $("#release_date").val(this.cells[0].innerHTML);  
            };  
            })(i);  
        }  
    }  

当前,当我单击任何一行时,我将得到prod_ver = 1release_date = somedate,但当我单击标题时,我得到prod_ver = prod_verrelease_date =release_date
请对此进行调查,并询问您是否需要任何澄清。你知道吗


Tags: nameformidfalsetablesdatereleasepage
1条回答
网友
1楼 · 发布于 2024-10-17 00:23:40

所以它工作了,就像它应该的那样。您应该尝试只在“tbody”内循环表行。 在jquery中,它应该如下所示:

$("body").on("click","tableSelector >tbody >tr", function(){ 
    $("#prod_ver").val($(this).children().eq(1));  
    $("#release_date").val($(this).children().eq(0));
});

相关问题 更多 >