【问题标题】:How to catch a LostFocus event in client-side code?如何在客户端代码中捕获 LostFocus 事件?
【发布时间】:2009-12-23 10:32:36
【问题描述】:

这确实是一个愚蠢的新手问题,但我仍在学习 ASP.NET 的基本原理,而且我无法自己解决这个问题...

我正在使用第 3 方控件 (Telerik RadTimePicker)。其他人设计了表单,我只想在控件失去焦点时在客户端捕获一个事件,以便我可以根据该控件的值设置另一个控件的值。但我找不到任何可以用来执行此操作的事件!

这是现有的代码:

<telerik:RadTimePicker ID="timeStart" runat="server">
  <TimeView runat="server" OnClientTimeSelected="OnClientTimeSelected">
  </TimeView>
</telerik:RadTimePicker>

如您所见,如果用户下拉时间选择器并单击时间以选择它,则已经有 javascript 代码 - 但没有什么可以处理用户输入时间然后关闭选项卡的情况控制。

我该怎么做?

【问题讨论】:

    标签: asp.net telerik client-side


    【解决方案1】:

    因为 RadTimePicker 实际上是由 RadDateInput 组成的,所以您可以使用随之而来的所有事件:

    http://www.telerik.com/help/aspnet-ajax/input_clientsideonblur.html

    所以你的代码应该是这样的:

    <telerik:RadTimePicker ID="timeStart" runat="server">
                <TimeView ID="TimeView1" runat="server" OnClientTimeSelected="OnClientTimeSelected">
                </TimeView>
                <DateInput ClientEvents-OnBlur="timeStart_onBlur">
                </DateInput>
    </telerik:RadTimePicker>
    

    【讨论】:

    • 谢谢!碰巧的是,我们使用了 ClientEvents-OnValueChanged 而不是 ClientEvents-OnBlur,但您得到了答案。 :)
    【解决方案2】:

    onBlur 是失去焦点的事件 - here 是一个参考。

    编辑:对于 RadTimePicker,您需要知道底层 HTML 控件的 ID 才能将处理程序附加到 - 即输入文本框。您可以通过查看呈现页面的源代码或使用 Firebug 之类的工具来找到它。

    获得 ID 后,您可以使用 javascript 附加事件处理程序

    例如在 JQuery 中

    $("id_of_textbox").bind("blur", function(e){
          //Code in here
        });
    

    【讨论】:

    • 您能否澄清一下这个属性在我上面的代码中的位置? RadTimePicker 和 TimeView 都没有可用的 onBlur 属性...?
    猜你喜欢
    • 2023-04-02
    • 2013-01-27
    • 2020-06-09
    • 2012-03-18
    • 1970-01-01
    • 2018-09-03
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多