为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

侃侃无极 2021-08-26 15:31:41
我正在使用yii2-multiple-input,在使用beforeDeleteRow如下所示的 javascript 事件删除项目时一切都很好。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 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

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

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

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

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

//img1.sycdn.imooc.com//6127438a0001b98e04420293.jpg

| 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);


查看完整回答
反对 回复 2021-08-26
  • 1 回答
  • 0 关注
  • 252 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信