Skip to content

Commit e9a122c

Browse files
author
Eugene Tupikov
committed
Pass the current row for removal when calling beforeDeleteRow event
1 parent 09f3762 commit e9a122c

File tree

4 files changed

+13
-9
lines changed

4 files changed

+13
-9
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ Yii2 multiple input change log
55
--------------------
66

77
- Bug #39: TabularInput: now new row does't copy values from the most recent row
8+
- Enh #40: Pass the current row for removal when calling `beforeDeleteRow` event
9+
810

911
1.2.3
1012
-----

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,10 @@ jQuery('#multiple-input').on('afterInit', function(){
311311
console.log('calls on before add row event');
312312
}).on('afterAddRow', function(e) {
313313
console.log('calls on after add row event');
314-
}).on('beforeDeleteRow', function(){
315-
console.log('calls on before remove row event');
314+
}).on('beforeDeleteRow', function(e, row){
315+
// row - HTML container of the current row for removal.
316+
// For TableRenderer it is tr.multiple-input-list__item
317+
console.log('calls on before remove row event.');
316318
return confirm('Are you sure you want to delete row?')
317319
}).on('afterDeleteRow', function(){
318320
console.log('calls on after remove row event');

src/assets/src/js/jquery.multipleInput.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
/**
3131
* beforeDeleteRow event is triggered before row will be removed.
3232
* The signature of the event handler should be:
33-
* function (event)
34-
* where event is an Event object.
33+
* function (event, row)
34+
* where event is an Event object and row is html container of row for removal
3535
*
3636
* If the handler returns a boolean false, it will stop removal the row.
3737
*/
@@ -157,18 +157,18 @@
157157

158158
removeInput: function () {
159159
var $wrapper = $(this).closest('.multiple-input').first(),
160-
line = $(this).closest('.multiple-input-list__item');
160+
$toDelete = $(this).closest('.multiple-input-list__item');
161161

162162
var event = $.Event(events.beforeDeleteRow);
163-
$wrapper.trigger(event);
163+
$wrapper.trigger(event, [$toDelete]);
164164
if (event.result === false) {
165165
return;
166166
}
167167

168-
line.find('input, select, textarea').each(function () {
168+
$toDelete.find('input, select, textarea').each(function () {
169169
methods.removeAttribute.apply(this);
170170
});
171-
line.fadeOut(300, function () {
171+
$toDelete.fadeOut(300, function () {
172172
$(this).remove();
173173
});
174174

src/assets/src/js/jquery.multipleInput.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)