在我的C#Webforms项目中,我设置了一个RadDatePicker
控件来运行JavaScript
函数。每次我选择日期时,都会收到此Javascript错误:
未捕获的TypeError:a [b]不是函数
这是我的代码。 JavaScript位于具有控件
的ASPX页面的顶部function SetDateSession() {
console.log('here');
}
<telerik:RadDatePicker ID="StartDatePicker" runat="server">
<ClientEvents OnDateSelected="SetDateSession()" />
</telerik:RadDatePicker>
选择日期后我收到错误,错误发生在控制台日志之前。
我无法弄清楚为什么这个非常简单的代码不起作用。如果我尝试使用onclick
标记中的input
来调用该函数,则可以正常运行。
<input type="button" id="RepBtn" onclick="SetDateSession()" value="View" runat="server"/>
我已经简化了代码,以至于我很难知道下一步该尝试什么。
答案摘要:
与HTML和ASP.NET不同, 如果您使用Telerik的OnClientClicked
并传递JavaScript函数,则不应提供括号 。提供括号将导致函数在页面加载时触发,而不是单击。
例如,RadButton生成此HTML:
<a id="exampleBtn" class="RadButton RadButton_Office2010Silver rbSkinnedButton"
href="javascript:void(0)">
<input class="rbDecorated" type="submit" name="btnStandard_input"
id="btnStandard_input" value="Standard Button" />
<input id="btnStandard_ClientState" name="btnStandard_ClientState"
type="hidden" />
</a>
这是一个带有提交类型的输入,当你刷新页面时,它会重新提交表单,运行你的JavaScript函数。
答案 0 :(得分:1)
在这样一个愚蠢的事情上浪费时间!基本上这个
<ClientEvents OnDateSelected="SetDateSession()" />
应该是这个
<ClientEvents OnDateSelected="SetDateSession" />
经验教训,Telerik!谢谢。