我在 Rails 中使用 partials 结合 jQuery 子字段模板来动态生成具有多个嵌套子属性的表单。在这些部分中是当表单中发生各种事件(例如 onChange)时触发的 JavaScript,并且执行的代码需要更改相关但不同的表单元素的 DOM。在这种特殊情况下,我使用它将销售点类型解决方案中的多个销售交易添加到特定的交易组,并控制为每笔交易收集哪些数据。因此,例如:
- 用户单击将 3 条新交易记录添加到交易组的链接。
- 用户在这三个事务记录中的每一个中设置不同的值,每个记录都会触发一个 onChange 事件,该事件调用一个 JS 函数,该函数需要以不同的方式为每个事件操作 DOM。(例如:交易 1 可能是退货,因此将交易文本从成本更改为退款,交易 2 可能是服务,因此更改应税状态,等等...)
- JS 函数必须能够为正确的事务更改 DOM。
我的问题是 #3 - 被修改的 DOM 元素与生成事件的元素不同,所以我不能使用 JS this。它们是公共父元素的一部分(即它们共享父<div>),因此我可以使用 jQuery 父/子选择器导航到 DOM 中的正确元素。但是,即使这样也需要 div id 属性具有一些唯一性,而且我不确定 Rails 中动态生成这些属性的最佳方式。
我想我可以使用随机值,但这似乎很糟糕,因为它并不能真正保证是唯一的,而且看起来就像一个 hack。我想我可以尝试引入某种计数器,但这似乎违反了 Rails 开发的原则。
任何指导表示赞赏。谢谢!