Javascript 未定义Asp.Net剑道UI事件函数";“未定义变更”;

Javascript 未定义Asp.Net剑道UI事件函数";“未定义变更”;,javascript,c#,asp.net,user-interface,kendo-ui,Javascript,C#,Asp.net,User Interface,Kendo Ui,我正在使用剑道用户界面,我正在使用时间选择器小部件。我想在更改时间时调用onchange脚本。它说“变化没有定义” 这是我的剑道UI代码: @(Html.Kendo().TimePicker() .Name("debut_h_std") .Events(e => { e.Change("chang

我正在使用剑道用户界面,我正在使用时间选择器小部件。我想在更改时间时调用onchange脚本。它说“变化没有定义” 这是我的剑道UI代码:

                @(Html.Kendo().TimePicker()
                  .Name("debut_h_std")
                  .Events(e =>
                     {
                         e.Change("change");
                     })
                  .Value("08:00 AM")

                )
这是我的更改功能:

function change() {
        alert("change")
    }

谢谢你的回答

我刚刚用javascript解决了这个问题

 <script>
            $(document).ready(function() {
                function onOpen() {
                    kendoConsole.log("Open");
                }

                function onClose() {
                    kendoConsole.log("Close");
                }

                function onChange() {
                    kendoConsole.log("Change :: " + kendo.toString(this.value(), 't'));
                }

                $("#timepicker").kendoTimePicker({
                    change: onChange,
                    close: onClose,
                    open: onOpen
                });
            });
        </script>

$(文档).ready(函数(){
函数onOpen(){
kendoConsole.log(“打开”);
}
函数onClose(){
kendoConsole.log(“关闭”);
}
函数onChange(){
log(“更改:”+kendo.toString(this.value(),'t'));
}
$(“#timepicker”).kendoTimePicker({
改变:一旦改变,
关闭:一旦关闭,
开放:onOpen
});
});

我刚刚用javascript解决了这个问题

 <script>
            $(document).ready(function() {
                function onOpen() {
                    kendoConsole.log("Open");
                }

                function onClose() {
                    kendoConsole.log("Close");
                }

                function onChange() {
                    kendoConsole.log("Change :: " + kendo.toString(this.value(), 't'));
                }

                $("#timepicker").kendoTimePicker({
                    change: onChange,
                    close: onClose,
                    open: onOpen
                });
            });
        </script>

$(文档).ready(函数(){
函数onOpen(){
kendoConsole.log(“打开”);
}
函数onClose(){
kendoConsole.log(“关闭”);
}
函数onChange(){
log(“更改:”+kendo.toString(this.value(),'t'));
}
$(“#timepicker”).kendoTimePicker({
改变:一旦改变,
关闭:一旦关闭,
开放:onOpen
});
});

ASP.NET MVC剑道UI小部件要求您在全局范围内定义函数

它被破坏的原因是,您的函数甚至没有在该实例中定义,或者没有在全局范围中定义。因此,请确保您的脚本位于全局范围内。在你的剃须刀视野中应该有这样的东西

 @(Html.Kendo().TimePicker()
       .Name("debut_h_std")
       .Events(e =>
        {
           e.Change("change");
        })
       .Value("08:00 AM")
       )
<script>
    function change() {
      alert("change")
    }
</script>
@(Html.Kendo().TimePicker())
.名称(“首次登场”标准)
.事件(e=>
{
e、 变更(“变更”);
})
.价值(“上午8:00”)
)
函数更改(){
警报(“更改”)
}
如果函数直接放在脚本标记下,那么它的作用域是全局的。确保没有将函数放置在另一个块中,甚至没有放置在document ready下。如果其内部文档就绪,则其范围仅在document ready的功能块内

也是关键点
当控制器返回视图时,ASP.NET MVC Kendo UI将任何小部件的整个razor语法转换为jquery函数。这个jquery块将在文档就绪时执行



如果您使用的是Jquery剑道UI,请确保所有功能都在同一范围内,或者至少可以访问,即使它在不同的范围内,也可以通过将函数设置为全局范围来实现。

ASP.NET MVC剑道UI小部件要求您在全局范围内定义函数。

它被破坏的原因是,您的函数甚至没有在该实例中定义,或者没有在全局范围中定义。因此,请确保您的脚本位于全局范围内。在你的剃须刀视野中应该有这样的东西

 @(Html.Kendo().TimePicker()
       .Name("debut_h_std")
       .Events(e =>
        {
           e.Change("change");
        })
       .Value("08:00 AM")
       )
<script>
    function change() {
      alert("change")
    }
</script>
@(Html.Kendo().TimePicker())
.名称(“首次登场”标准)
.事件(e=>
{
e、 变更(“变更”);
})
.价值(“上午8:00”)
)
函数更改(){
警报(“更改”)
}
如果函数直接放在脚本标记下,那么它的作用域是全局的。确保没有将函数放置在另一个块中,甚至没有放置在document ready下。如果其内部文档就绪,则其范围仅在document ready的功能块内

也是关键点
当控制器返回视图时,ASP.NET MVC Kendo UI将任何小部件的整个razor语法转换为jquery函数。这个jquery块将在文档就绪时执行



如果您使用的是Jquery Kendo UI请确保所有函数都在同一范围内,或者至少可以通过将函数设置为全局范围来访问,即使它在不同的范围内

让我知道我的答案是否对您有帮助让我知道我的答案是否对您有帮助