【问题标题】:How to place the cursor at the start of ASP.NET textbox on getting the focus?如何将光标放在 ASP.NET 文本框的开头以获得焦点?
【发布时间】:2020-09-07 04:03:02
【问题描述】:

我对 ASP 相当陌生,仅供参考。有问题的文本框用于电话号码,我使用 Ajax MaskedEditExtender 创建格式为“()-___”的输入掩码。

现在有什么问题 输入掩码可以正常工作,但是当用户单击框时,光标会停留在他们单击的任何位置、输入掩码的中间或任何位置。

我需要什么 当用户单击它时,我需要将光标自动定位在文本框的开头(第一个字符)。我非常熟悉如何使用 GotFocus 事件在 VBA 中执行此操作。但似乎没有在 ASP 中处理此事件的事件。是否有 JavaScript 或我缺少的某种设置?我已经搜索过,但无法找到任何可以准确解决此问题的内容。

我已经包含了我正在谈论的图片的链接,在我可以嵌入之前必须获得一些代表......提前谢谢!

【问题讨论】:

    标签: c# asp.net textbox cursor input-mask


    【解决方案1】:

    您可以使用 JQuery 将焦点设置到您的第一个文本框

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        var myFirstTextBox = $("#MyFirstTextBoxIdHere");
        $("myFirstTextBox ").focus();
    });
    </script>
    

    这将自动关注页面加载到您的第一个文本框。

    【讨论】:

    • 感谢您的回复,但我不想将焦点设置到 Page_Load 上的文本框。我要做的是,当用户单击文本框时,无论他们单击文本框中的哪个位置,都将光标移动到文本框中的第一个位置/占位符。
    【解决方案2】:

    试试这个

    <asp:TextBox runat="server" ID="txtMyBox" onFocus="setCursorToStart(this)"></asp:TextBox>
    function setCursorToStart(x) {
            setTimeout(function() {
                x.setSelectionRange(0, 0);
            }, 0);
        }
    

    【讨论】:

    • 感谢您的回复,但我不想将焦点设置到 Page_Load 上的文本框。我要做的是,当用户单击文本框时,无论他们单击文本框中的哪个位置,都将光标移动到文本框中的第一个位置/占位符。
    猜你喜欢
    • 2010-11-23
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多