Javascript 获取Gridview yii2 selectioncolumn中的选定行未定义错误

Javascript 获取Gridview yii2 selectioncolumn中的选定行未定义错误,javascript,gridview,yii2,yii2-advanced-app,Javascript,Gridview,Yii2,Yii2 Advanced App,我在选择行并向控制器发送键时出错 在firebug的按钮点击事件中,它会显示类似这样的错误 Uncaught TypeError: Cannot read property 'selectionColumn' of undefined 这是我的视图代码。它是简单的网格视图 这似乎在button onclick事件上不起作用,如果我使用这个脚本,它就可以正常工作 $this->registerJs(' $(document).ready(function(){ $(

我在选择行并向控制器发送键时出错

在firebug的按钮点击事件中,它会显示类似这样的错误

Uncaught TypeError: Cannot read property 'selectionColumn' of undefined
这是我的视图代码。它是简单的网格视图

这似乎在button onclick事件上不起作用,如果我使用这个脚本,它就可以正常工作

$this->registerJs('
    $(document).ready(function(){
        $("#w1 input[type=checkbox]").click(function(){
            var keys = $("#w1").yiiGridView("getSelectedRows");
            $.ajax({
                type:"POST",
                url: "../message", // your controller action
                dataType: "json",
                data: {keylist: keys},
                success: alert(keys)
            });
        });
    });
这几乎相同,但在第二个脚本中,每次单击复选框时都会发送ajax请求

我希望用户首先选择行并对按钮单击事件执行操作 希望你能理解 我知道这是一个非常常见的错误,但我尝试了不同的选择,但似乎都不起作用


谢谢……

当您看到一条错误消息时,首先要检查它发生的行。在那里你会发现最重要的信息。在我们的例子中,这是出现问题的代码行:

var keys=$("#w1").yiiGridView("getSelectedRows");

在这里,您的代码搜索id为w1的元素,并为此调用yiiGridView。函数中的某个地方引用了selectioncolumn,但是引用了该名称的成员的元素没有正确初始化。

您能告诉我们在哪一行上有此错误吗?@lajosarpad在每一行上。。我有一个gridview和checkbox列。我想做的就是对gridview中的选定数据执行一些操作。现在它在按钮点击事件上不起作用。如果我使用答案中包含的第二个脚本,它会工作。。我的意思是:源代码中的哪一行。@lajosArpad。当我使用$w1 input[type=checkbox]时,单击函数行。单击函数它工作正常,但当我使用btnCheck=$message时;btnCheck.clickfunction它不起作用。让我重新表述这个问题:源代码中的哪一行引发异常?如果打开浏览器控制台并查看错误,它会引导您查找哪一行源代码?
$this->registerJs('
    $(document).ready(function(){
        $("#w1 input[type=checkbox]").click(function(){
            var keys = $("#w1").yiiGridView("getSelectedRows");
            $.ajax({
                type:"POST",
                url: "../message", // your controller action
                dataType: "json",
                data: {keylist: keys},
                success: alert(keys)
            });
        });
    });
var keys=$("#w1").yiiGridView("getSelectedRows");