我正在使用Kendo UI,我正在使用TimePicker小部件。我想在改变时间时调用onchange脚本。它说“变化没有定义” 这是我的Kendo UI代码:
@(Html.Kendo().TimePicker()
.Name("debut_h_std")
.Events(e =>
{
e.Change("change");
})
.Value("08:00 AM")
)
这是我的改变功能:
function change() {
alert("change")
}
感谢您的回答
答案 0 :(得分:1)
ASP.NET MVC Kendo UI小部件要求您在全局范围内定义函数
它破坏的原因是因为您的功能甚至没有在该实例中定义,也不在全局范围内定义。因此,请确保您的脚本在全局范围内。你应该在你的剃须刀视图中有这样的东西。
@(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 Kendo UI会将任何窗口小部件的整个剃刀语法转换为jquery函数。这个jquery块将在文档就绪时执行。
如果您正在使用 Jquery Kendo UI ,请确保所有功能都在相同的范围内或至少可访问,即使它在不同的范围内,也可以将功能作为全局范围
答案 1 :(得分: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>