还有其他人有这个问题吗?
根据所有文档,您应该能够使用以下代码访问任何Telerik Extensions或Kendo控件的数据
var data = $('#id').data('tControlType')
但是,我从未真正使用此代码。无论我做什么,“data”函数总是返回undefined。控件实际上正常工作,我能够通过其他几种方式获取控件数据,例如通过任何事件处理程序的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,我也使用了剑道测试版,虽然在我加入剑道之前遇到了同样的问题。 ScriptRegistrar目前位于< HEAD>标签,因为剑道需要它,虽然我也试过把它放在< BODY>结束之前。标签为Telerik Extensions建议无效。我还确认IE,Firefox,Opera,Safari和Chrome中存在问题。
因为我正在使用Telerik Script Registrar来包含所有Telerik& amp; jQuery相关的脚本,我有点期望这应该“正常工作”。还有什么我可能做错了?
编辑:这是一个例子:
@(Html.Telerik().NumericTextBox().Name("NumericTextBox"))
<script type="text/javascript">
$(function() {
var data = $("#NumericTextBox").data("tTextBox");
alert(data); //displays "undefined"
});
</script>
答案 0 :(得分:1)
确保jQuery JavaScript不会包含多次。除非设置ScriptRegistrar
,否则jQuery(false)
将自动包含一个。{/ p>
答案 1 :(得分:0)
我认为问题是当您尝试访问该值时,该对象尚未在DOM上。尝试访问处理程序上的值(可能是按钮单击),看看它是否有效。除此之外一切似乎都没问题