2016-03-18 47 views
0

我正在使用Kendo UI,并使用TimePicker小部件。我想在改变时间的时候打电话给onchange脚本。它说:“变化是没有定义” 这是我的剑道UI代码:Asp.Net Kendo UI事件函数未定义“更改未定义”

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

       ) 

,这是我改变功能:

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

谢谢您的回答

+0

让我知道,如果我的答案可以帮助你 –

回答

0

我只是解决了它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> 
0

ASP.NET MVC Kendo UI widg ets要求您在全局范围内定义函数

其中断的原因是因为您的函数甚至没有在该实例中定义或不在全局范围内定义。所以确保你的脚本在全局范围内。你应该在你的剃刀视图中有这样的东西。

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

如果函数直接放在脚本标记下,那么它的作用域是全局的。确保您没有将该功能放置在另一个区块内,即使在文档准备就绪的情况下也没有。如果其内部文件准备好了它的范围只在文件准备好的功能块内。

也是关键点
ASP.NET MVC剑道UI将任何部件的整个剃刀语法转换成一个jQuery功能时,控制器返回视图。这个jquery块将在文档准备好时执行。


如果您正在使用jQuery的剑道UI确保所有的功能都处于相同的范围,或者至少访问即使是在不同的范围内通过使功能全局范围