Laravel-admin: 批量操作js报错 $.admin.grid.select(id) not defined

Created on 28 Jun 2019  ·  13Comments  ·  Source: z-song/laravel-admin

  • Laravel Version: 5.6.39
  • PHP Version: 7.3.6
  • Laravel-admin: 1.7.2

Description:

批量操作点击左边任何一个checkbox,出现
orders:1973 Uncaught TypeError: Cannot read property 'select' of undefined
at HTMLInputElement. (orders:1973)
at Function.each (jQuery-2.1.4.min.js:2)
at n.fn.init.each (jQuery-2.1.4.min.js:2)
at HTMLInputElement. (orders:1971)
at HTMLInputElement.dispatch (jQuery-2.1.4.min.js:3)
at HTMLInputElement.r.handle (jQuery-2.1.4.min.js:3)
at Object.trigger (jQuery-2.1.4.min.js:3)
at HTMLInputElement. (jQuery-2.1.4.min.js:3)
at Function.each (jQuery-2.1.4.min.js:2)
at n.fn.init.each (jQuery-2.1.4.min.js:2)

源码对应:
$('.grid-select-all').on('ifChanged', function(event) {
if (this.checked) {
$('.grid-row-checkbox').iCheck('check');
} else {
$('.grid-row-checkbox').iCheck('uncheck');
}
}).on('ifClicked', function () {
if (this.checked) {
$.admin.grid.selects = {};
} else {
$('.grid-row-checkbox').each(function () {
var id = $(this).data('id');
$.admin.grid.select(id); // 这行报错
});
}

var selected = $.admin.grid.selected().length;

if (selected > 0) {
    $('.grid-select-all-btn').show();
} else {
    $('.grid-select-all-btn').hide();
}

$('.grid-select-all-btn .selected').html("已选择 {n} 项".replace('{n}', selected));

});

$(function () {
$('.grid-row-checkbox').iCheck({checkboxClass:'icheckbox_minimal-blue'}).on('ifChanged', function () {

var id = $(this).data('id');

if (this.checked) {
    $.admin.grid.select(id);
    $(this).closest('tr').css('background-color', '#ffffd5');
} else {
    $.admin.grid.unselect(id);
    $(this).closest('tr').css('background-color', '');
}

}).on('ifClicked', function () {

var id = $(this).data('id');

if (this.checked) {
    $.admin.grid.unselect(id);
} else {
    $.admin.grid.select(id); // 这行报错
}

var selected = $.admin.grid.selected().length;

if (selected > 0) {
    $('.grid-select-all-btn').show();
} else {
    $('.grid-select-all-btn').hide();
}

$('.grid-select-all-btn .selected').html("已选择 {n} 项".replace('{n}', selected));

});

Most helpful comment

删除/public/vendor/laravel-admin/目录

然后运行下面的命令来发布资源:

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

是正解,处理后可以正常使用

All 13 comments

我这也复现了,应该是近期引入的

删除/public/vendor/laravel-admin/目录

然后运行下面的命令来发布资源:

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

`80GCTGW)8QOS{0MWJ%%QPJ
我的也是 1.7.2版本

删除/public/vendor/laravel-admin/目录

然后运行下面的命令来发布资源:

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

没有用

  • Laravel版本:5.6.39
  • PHP版本:7.3.6
  • Laravel-admin:1.7.2

描述:

批量操作点击左边任何一个复选框,出现
命令:1973未捕获的TypeError:无法读取
HTMLInputElement 中未定义的属性'select' 。(订单:1973)
位于HTML.putElement的n.fn.init.each(jQuery-2.1.4.min.js:2)
的Function.each(jQuery-2.1.4.min.js:2)
。(订单:1971)
在HTMLInputElement.dispatch(jQuery的2.1.4.min.js:3)
在HTMLInputElement.r.handle(jQuery的2.1.4.min.js:3)
在Object.trigger(jQuery的2.1。 4.min.js:3)
在HTMLInputElement。(jQuery-2.1.4.min.js:3)
在函数each(jQuery-2.1.4.min.js:2)
的n.fn.init.each(jQuery-2.1.4.min.js:2) )

源码对应:
$('。grid-select-all')。on('ifChanged',function(event){
if(this.checked){
$('。grid-row-checkbox')。iCheck('check' );
} else {
$('。grid-row-checkbox')。iCheck('uncheck');
}
})。on('ifClicked',function(){
if(this.checked){
$ .admin.grid .selects = {};
} else {
$('。grid-row-checkbox')。each(function(){
var id = $(this).data('id');
$ .admin.grid.select( id); //这行报错
});
}

var selected = $.admin.grid.selected().length;

if (selected > 0) {
    $('.grid-select-all-btn').show();
} else {
    $('.grid-select-all-btn').hide();
}

$('.grid-select-all-btn .selected').html("已选择 {n} 项".replace('{n}', selected));

});

$(function(){
$('。grid-row-checkbox')。iCheck({checkboxClass:'icheckbox_minimal-blue'})。on('ifChanged',function(){

var id = $(this).data('id');

if (this.checked) {
    $.admin.grid.select(id);
    $(this).closest('tr').css('background-color', '#ffffd5');
} else {
    $.admin.grid.unselect(id);
    $(this).closest('tr').css('background-color', '');
}

})。on('ifClicked',function(){

var id = $(this).data('id');

if (this.checked) {
    $.admin.grid.unselect(id);
} else {
    $.admin.grid.select(id); // 这行报错
}

var selected = $.admin.grid.selected().length;

if (selected > 0) {
    $('.grid-select-all-btn').show();
} else {
    $('.grid-select-all-btn').hide();
}

$('.grid-select-all-btn .selected').html("已选择 {n} 项".replace('{n}', selected));

});

解决了吗?

我测试了下 可以使用 发布之后 composer dump-autoload 然后强刷页面就可以了

我也出现了这个问题

删除/public/vendor/laravel-admin/目录

然后运行下面的命令来发布资源:

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

是正解,处理后可以正常使用

根据上面的方案,然后清除浏览器缓存后解决。

清流浏览器缓存解决,文档中其实有,提个建议,可以把文档中的这句话划重点

Laravel Version: 5.8.35
PHP Version: 7.3.8
Laravel-admin: 1.7.7

After update laravel-admin from 1.6.15

image

Publish update not work
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

Laravel Version: 5.8.35
PHP Version: 7.3.8
Laravel-admin: 1.7.7

After update laravel-admin from 1.6.15

image

Publish update not work
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

rm -rf public/vendor/laravel-admin/*
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

try

and re login

@midoribi Thanks a lot! Its working!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

chenyongmin picture chenyongmin  ·  3Comments

joernroeder picture joernroeder  ·  3Comments

piian picture piian  ·  3Comments

clock1129 picture clock1129  ·  3Comments

benny-sun picture benny-sun  ·  3Comments