我为电话号码条目创建了一个Web用户控件,其中包含3个用于区号,数字和扩展名的文本框。文本框位于表格中,用于定位,表格位于范围内。在使用控件的页面中,我有<asp:Label ID="Label6" runat="server" AssociatedControlID="uxPhoneNumber">Phone</asp:Label>
将焦点设置为网页用户控件中的子项
我想要做的是将焦点设置为单击相关标签时的区域代码输入。单击标签时Web用户控件是否获得焦点,还是可以更改ascx中的html,这样可以工作?我曾尝试将onfocus()
添加到<span>
标记和<table>
标记,以便我可以使用javascript设置焦点,但事件不会引发。如果我将onfocus()事件移动到它触发的第一个输入并且我的脚本运行
这是完整的ascx代码。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PhoneNumber.ascx.cs" Inherits="CustomControls.PhoneNumber" %>
<span id="uxPhoneNumberControl" runat="server" style="display: inline-block;" onfocus="setInitialFocus()">
<asp:Table ID="uxPhoneNumberTable" runat="server">
<asp:TableRow runat="server">
<asp:TableCell runat="server">
<telerik:RadMaskedTextBox ID="uxAreaCode" runat="server" Columns="3" Mask="###" CssClass="span1" Skin="" MaxLength="3"></telerik:RadMaskedTextBox>
</asp:TableCell>
<asp:TableCell runat="server">
<telerik:RadMaskedTextBox ID="uxPhoneNumber" runat="server" Mask="###-####" Skin="" Columns="10" CssClass="input-mini" MaxLength="8"></telerik:RadMaskedTextBox>
</asp:TableCell>
<asp:TableCell runat="server">
<asp:Label ID="uxExtensionLabel" runat="server" Text="Ext." AssociatedControlID="uxExtension" CssClass="controls-label"></asp:Label>
</asp:TableCell>
<asp:TableCell runat="server">
<telerik:RadMaskedTextBox ID="uxExtension" runat="server" Columns="5" Mask="#####" Skin="" CssClass="span1"></telerik:RadMaskedTextBox>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
<asp:HiddenField ID="uxPhoneEntity" runat="server" />
</span>
当单击跨度时会引发onclick事件,因此可以工作,但在单击页面中的关联标签时不会引发onclick事件。 – jac
@jac - 您是否也将点击事件添加到标签? –
不,我在单击标签时依赖于浏览器行为,并且它与具有“AssociatedControlID”属性的另一个控件相关联。 – jac