0

有没有其他人有这个问题?

根据所有文档,您应该能够使用以下代码访问任何 Telerik Extensions 或 Kendo 控件的数据

var data = $('#id').data('tControlType')

但是,我从来没有真正让这个代码工作。无论我做什么,“数据”函数总是返回未定义的。该控件实际上可以正常工作,并且我可以通过其他几种方式获取控件数据,例如通过任何事件处理程序的 event.sender,但数据函数不起作用。

我正在使用 Telerik Script Registrar 在我的页面中包含 jQuery 和其他脚本。这目前看起来像这样:

@{Html.Telerik().ScriptRegistrar().jQuery(true).jQueryValidation(true)
    .Globalization(true).DefaultGroup(group => group
        .Add("~/Scripts/jquery-ui-1.8.11.js")
        .Add("~/Scripts/jquery.ui.touch-punch.js")
        .Add("~/Scripts/jquery.unobtrusive-ajax.js")
        .Add("~/Scripts/bootstrap-tab.js")
        .Add("~/Scripts/bootstrap-dropdown.js")
        .Add("~/Scripts/kendo/kendo.web.js")
        .Add("~/Scripts/kendo/kendo.aspnetmvc.js")
        .Add("~/Scripts/ui.watermark/ui.watermark.js")
        .Add("~/Scripts/date.js")
        .Add("~/Scripts/jquery.blockUI.js")
        .Add("~/Scripts/jquery.ba-bbq.js")}

看起来 Telerik 正在使用 jQuery 1.7.1,因为那是 Telerik Scripts 文件夹中的内容。Telerik 版本是 2012.1.214,我也在使用 Kendo 测试版,尽管在加入 Kendo 之前我遇到了同样的问题。ScriptRegistrar 当前位于 <HEAD> 标记中,因为 Kendo 需要它,尽管我也尝试将它放在 <BODY> 标记的末尾之前,因为 Telerik Extensions 建议没有效果。我还确认问题存在于 IE、Firefox、Opera、Safari 和 Chrome。

因为我使用 Telerik Script Registrar 来包含所有 Telerik 和 jQuery 相关的脚本,所以我希望这应该“正常工作”。我还能做错什么?

编辑:这是一个例子:

@(Html.Telerik().NumericTextBox().Name("NumericTextBox"))

<script type="text/javascript">
$(function() {        
    var data = $("#NumericTextBox").data("tTextBox");
    alert(data); //displays "undefined"
});
</script>
4

2 回答 2

1

确保包含 jQuery JavaScript 的次数不超过一次。ScriptRegistrar除非jQuery(false)设置,否则将自动包含一个。

于 2012-07-18T10:17:09.823 回答
0

我认为问题在于当您尝试访问该值时该对象尚未在 DOM 上。尝试访问处理程序上的值(可能是单击按钮)并查看它是否有效。除此之外一切似乎都很好

于 2012-06-23T17:01:13.913 回答