我有 2 个视图。view1 上的最后一个控件是 txtName,而 view2 上的第一个控件是 txtAge。需要在 TAB 按下时将焦点从 txtName 更改为 txtAge,但我无法做到这一点。
ASPX:
<asp:Multiview ID ="multiview1" runat="server" ActiveViewIndex="0">
<asp:view ID="view1" runat="server">
<asp:Textbox id="txtName" runat="server"
onfocusout="SetFocus('<%=txtAge.ClientId%>');"></asp:TextBox>
</asp:view>
<asp:view ID ="view2" runat="server">
<asp:Textbox id="txtAge" runat="server" ></asp:TextBox>
</asp:view>
</asp:Multiview>
JS:
function SetFocus(controlId){
/*alert(controlId);*/
document.getElementById(controlId).focus();
}
当我检查警报时,它会显示<%=txtAge.ClientId%>
在弹出窗口中。这哪里错了。
这是我的新发现:
当目标控件在同一个视图中时,此代码运行良好,但当它在另一个视图中时,则不会。所以我认为,还应该做一些其他的事情来先改变视图,然后再担心焦点:
<asp:Textbox id="txtName" runat="server"
onfocusout="SetFocus();"></asp:TextBox>
function SetFocus(){
document.getElementById('<%=txtEmail.ClientID%>').focus();
/* txtEmail is in the same view 'view1' as in txtName */
}