yii2-multiple-input我无法获取当前行

时间:2019-07-29 21:19:27

标签: javascript jquery yii2 widget tabular

我正在使用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变量来执行此操作,但没有结果,因为后者仅返回行数,而不返回我要查找的索引。

1 个答案:

答案 0 :(得分:1)

您使用的currentIndex实际上是多输入容器所在的当前索引。

例如,如果您有5个输入并删除了1,则当前索引将为4,它不是已删除行的索引,因此这意味着{{ 1}}不是该行的实际索引,而是容器中的总行数,并且如果您期望如果从全部currentIndex行中删除第3行,它应该返回3/2(取决于在50的起始索引上),则您错了。

我无法通过获取元素/行的实际行ID来猜测您实际上想要完成什么,尽管您可以做到这一点,但是在您需要了解某些内容之前。

将以下列表分别视为容器内的行和索引。

enter image description here

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