JavaScript错误:未捕获的TypeError:a [b]不是函数

时间:2016-07-29 14:42:10

标签: javascript html webforms telerik

在我的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函数。

1 个答案:

答案 0 :(得分:1)

在这样一个愚蠢的事情上浪费时间!基本上这个

<ClientEvents OnDateSelected="SetDateSession()" />

应该是这个

<ClientEvents OnDateSelected="SetDateSession" />

经验教训,Telerik!谢谢。