gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:13:10 25 4
gpt4 key购买 nike

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

最佳答案

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

例如,如果您有 5 个输入,并且删除了 1,则当前索引将为 4,它不是已删除的行,因此这意味着 currentIndex 不是该行的实际索引,而是容器中的总行数,并且如果您希望删除总数中的第三行5 行它应该返回 3/2(取决于 01 的起始索引),那么你就错了。

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

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

enter image description here

| 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

但是如果您删除第一行,并且您期望删除第一行后,其余索引将保留以前的索引,如下所示,

| IDX | Element | ID  
| 2 | input | email-2
| 3 | input | email-3
| 4 | input | email-4
| 5 | input | email-5

不会,删除后索引会重置,如果每次删除第一个元素,索引总是为1。

因此,如果您仍然想获取已删除行的行号,您应该使用 row 参数和 .index() 函数 row 参数将包含要删除的行的对象。

注意:以下示例使用基本的单列,请相应调整您的脚本

$js = <<<JS
jQuery('#wtabularbotellas').on('beforeDeleteRow',function(e, row,currentIndex) {
//the index of the row removed
let removedIndex= row.index();

//id of the input inside
let inputId = row.find(':input').attr('id');
console.log("Index removed====>"+removedIndex, "Input id of the removed row input====>"+inputId);
});
JS;

$this->registerJs($js, \yii\web\View::POS_READY);

关于javascript - yii2-multiple-input 我无法获取当前行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57261557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com