我正在使用 Visual Studio 2022 和 ASP.NET Webforms 应用程序。
我有一个链接到
ajaxToolkit:MaskedEditExtender
的文本框。
如果用户从上一个控件切换到文本框,并且文本框为空,则光标位于最后一个“/”的左侧。
如果用户从上一个控件切换到文本框,并且文本框已填充,则光标位于左侧。
当文本框已填充时,如何使光标定位在左侧;当焦点设置为空时,如何使光标定位在左侧,但如果用户在控件上单击鼠标左键来定位光标,则如何使光标定位在左侧?
<asp:Label ID="lbJob_Number" runat="server" Text="Job Number:"></asp:Label>
<asp:TextBox ID="tbJob_Number" runat="server" Width="80px" AutoPostBack="True" ></asp:TextBox>
<ajaxToolkit:MaskedEditExtender ID="meeJob_Number" runat="server"
BehaviorID="meeJob_Number" CultureAMPMPlaceholder=""
CultureCurrencySymbolPlaceholder=""
CultureDateFormat="" CultureDatePlaceholder=""
CultureDecimalPlaceholder="" CultureThousandsPlaceholder=""
CultureTimePlaceholder=""
TargetControlID="tbJob_Number"
Mask="99/9999/???" MaskType="Number" ClearMaskOnLostFocus="false" />
<asp:Label ID="lbJob_Name" runat="server" Text="Job Name:"></asp:Label>
<asp:Label ID="lbJob_Name_Display" runat="server"></asp:Label>
<asp:Label ID="lbEstimating_Job_Number" runat="server" Text="Est Job No:" Visible="False"></asp:Label>
<asp:TextBox ID="tbEstimating_Job_Number" runat="server" Width="80px" AutoPostBack="True"></asp:TextBox>
<ajaxToolkit:MaskedEditExtender ID="meeEstimating_Job_Number"
runat="server" BehaviorID="meeEstimating_Job_Number"
CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder=""
CultureDateFormat="" CultureDatePlaceholder=""
CultureDecimalPlaceholder="" CultureThousandsPlaceholder="" CultureTimePlaceholder=""
TargetControlID="tbEstimating_Job_Number"
Mask="99/9999/???" MaskType="Number" ClearMaskOnLostFocus = "false"/>
<asp:Label ID="lbEstimating_Job_Name" runat="server" Text="Est Job Name:" Visible="False"></asp:Label>
<asp:TextBox ID="tbEstimating_Job_Name" runat="server" Enabled="False" Visible="False" Width="300px" MaxLength="30"></asp:TextBox>
谢谢
您可以使用
obj.selectionStart = obj.selectionEnd = position;
来移动光标,其中obj
是您的TextBox
,position
是您要移动到的位置。
在下面的代码中,假设光标位于
tbJob_Number
处,按Tab
切换焦点位置,可以发现tbEstimating_Job_Number
的焦点位于文本的最左侧。当用户直接用鼠标指定光标位置时,onfocus
不会影响鼠标选择的光标位置。
<head runat="server">
<title></title>
<script>
function movePosition(obj,position) {
obj.focus();
obj.selectionStart = obj.selectionEnd = position;
}
function SetFocusPosition() {
var element = document.getElementById("tbEstimating_Job_Number")
movePosition(element,0)
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lbJob_Number" runat="server" Text="Job Number:"></asp:Label>
<asp:TextBox ID="tbJob_Number" runat="server" Width="80px" AutoPostBack="True" Text="AAAA"></asp:TextBox>
<asp:Label ID="lbJob_Name" runat="server" Text="Job Name:"></asp:Label>
<asp:TextBox ID="tbEstimating_Job_Number" runat="server" Width="80px" AutoPostBack="True" Text="BBBB" onfocus="SetFocusPosition()" ></asp:TextBox>
</div>
</form>
</body>
您可以根据自己的需要进行调整。