0

我的应用处理标签和电影实体:多对多关系。加入实体被命名为“tagazation”。我希望用户能够在模态窗口中为每部电影添加标签。因此,我将隐藏的模式窗口渲染到索引操作中的每部电影的页面。问题出在 tag_id 字段中:我在每个表单中都有 twitter bootstrap 的 typeaheaded 文本字段。所有这些字段共享公共类“标签输入”。在文本字段中的选择事件触发 set_id 函数:

$(document).ready(function() {
function set_id(item, val, text){
    $(this).parent().children("#tagazation_tag_id").val(val);
}
$(".tags-input").typeahead({
    source: [],
    itemSelected: set_id
});
});

set_id 函数应该以与触发该回调的文本字段相同的形式更改特定的隐藏字段,但标签 ID 有多个隐藏字段。如果我们确切地知道 set_id 函数是为哪部电影启动的,那当然不会是一个大问题。

我相信,应该有一种“标准”的方式来处理这个问题,而不是通过 DOM 树搜索来进行我仍然无法正常工作的浏览。

4

1 回答 1

0

如果我了解您要做什么,我认为最简单的解决方案是仅将一个隐藏的模态对话框呈现为 html,而不是为每部电影呈现一个模态对话框。在您打开模态之前,您可以使用 javascript 设置所需的任何文本,以使模态引用被单击的电影。

如果您只有一个模态对话框,则可以将隐藏标签 id 字段称为$('#tagazation_tag_id'),而不会混淆它所指的输入。

于 2013-02-10T05:39:09.113 回答