我正在使用yii2-multiple-input,当使用如下所示的javascript事件beforeDeleteRow
删除项目时,一切都很好。
jQuery('#wtabularbotellas').on('beforeDeleteRow',function(e, row, currentIndex) {
// This throw the number of rows instead how do I get the current Index?
alert(currentIndex);
});
但是我无法捕获该行的ID号。我尝试使用row
对象和currentIndex
变量来执行此操作,但没有结果,因为后者仅返回行数,而不返回我要查找的索引。
答案 0 :(得分:1)
您使用的currentIndex
实际上是多输入容器所在的当前索引。
例如,如果您有5
个输入并删除了1
,则当前索引将为4
,它不是已删除行的索引,因此这意味着{{ 1}}不是该行的实际索引,而是容器中的总行数,并且如果您期望如果从全部currentIndex
行中删除第3行,它应该返回3/2(取决于在5
或0
的起始索引上),则您错了。
我无法通过获取元素/行的实际行ID来猜测您实际上想要完成什么,尽管您可以做到这一点,但是在您需要了解某些内容之前。
将以下列表分别视为容器内的行和索引。
1
如果删除最后一行,则新索引将与之前相同,从逻辑上讲应该没问题。
| IDX | Element | ID
| 1 | input | email-1
| 2 | input | email-2
| 3 | input | email-3
| 4 | input | email-4
| 5 | input | email-5
但是,如果您删除第一行,并且希望删除第一行之后,其余索引将保持先前的索引,如下所示,
| IDX | Element | ID
| 1 | input | email-1
| 2 | input | email-2
| 3 | input | email-3
| 4 | input | email-4
否,删除后索引将被重置,并且如果您每次都删除第一个元素,您将始终获得索引1。
因此,如果您仍想获取已删除行的行号,则应使用| IDX | Element | ID
| 2 | input | email-2
| 3 | input | email-3
| 4 | input | email-4
| 5 | input | email-5
参数和row
函数,.index()
参数将具有要删除的行。
注意:以下示例使用的是基本的单列,请相应地调整脚本
row