2013-07-31 54 views
2

我爲電話號碼條目創建了一個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> 

回答

0

嘗試連接一個jQuery單擊事件的跨度,然後將焦點設置到輸入端,這樣的:

$(document).ready(function(){ 
    $('#uxPhoneNumberControl').on('click',function(){ 
     $("#InputID").focus(); 
    }); 
}); 

注:我在focus()通話放InputID的總稱,因爲我無法分辨出您正在使用哪個ID或類別來唯一標識要設置焦點的區域代碼輸入控件。

+0

當單擊跨度時會引發onclick事件,因此可以工作,但在單擊頁面中的關聯標籤時不會引發onclick事件。 – jac

+0

@jac - 您是否也將點擊事件添加到標籤? –

+0

不,我在單擊標籤時依賴於瀏覽器行爲,並且它與具有「AssociatedControlID」屬性的另一個控件相關聯。 – jac

0

setInitialFocus()功能應該是這個樣子:

function setInitialFocus() 
{ 
    var area = document.getElementById("<%=uxAreaCode.ClientID%>"); 
    area.focus(); 
    return true; 
} 

這將定位uxAreaCode對象,並迫使其採取的焦點。

相關問題