处理带变量的提交按钮的最快方法是什么?

时间:2011-06-19 01:22:59

标签: python html forms

我有一个带有一堆物品的表格。每个项目旁边都有一个“删除”按钮。当按下其中一个按钮时,我需要知道哪一个按钮,以便我知道要删除哪个项目。

现在的方式,每个按钮都被命名为remove-#,其中#是项目的索引。为了获取#,虽然我必须遍历每个 POST值,检查密钥是否以remove-开头,如果是,则解析整数。

是否有任何方法比O(n)更快,其中n是后期变量的数量?


n不是那么大,以至于这会成为一项昂贵的操作,但主要是因为我很好奇。

此外,在我得到任何答案之前建议我使用JavaScript并在每个按钮上放置onclick事件以将索引移动到单独的隐藏输入中....我正在尝试执行此操作 without JavaScript。

3 个答案:

答案 0 :(得分:1)

一个选项是将每个删除按钮放在一个单独的表单中,隐藏值具有常量名称,值表示要删除的项目。

答案 1 :(得分:1)

如果POST值存储在dict中你可以转过来而不是寻找看起来像删除的东西 - #生成所有remove-#并尝试使用它们来索引dict。这会将搜索限制在O(m),其中m是可以删除的元素数。

答案 2 :(得分:0)

这真的是Javascript的域名。但是添加onclick并不是一个很好的方法。使用HTML5数据属性和不显眼的侦听器。例如,在JQuery / HTML5

<input type='button' class='remove-button' name='remove' data-remove-attr='5'>

$('.remove-button').live("click", function() {
  alert($(this).attr("data-remove-attr")); // Alerts 5.
});

尽管数据是HTML5的东西,但它与旧的IE等向后兼容,因为它们总是允许任意的dom属性。

编辑:注意这是O(1)如果你做了你的行动$('#remove - '+ id).hide();