【问题标题】:changing the textbox text to xxxx after tabbing out of it跳出后将文本框文本更改为 xxxx
【发布时间】:2020-09-22 22:31:44
【问题描述】:

我有一个输入社会安全号码的文本框。一旦用户退出该字段,我需要将社会安全号码的前 5 个数字更改为 X,因此如果用户输入

123456789

号码应该变成 XXXXX6789

我尝试使用 txtSSN_TextChanged 事件执行此操作,但这会导致回发。我可以在 Javascript 或 Jquery 中做这样的事情吗?下面是我的 C# 代码:

            string lastFourSSN = "";
            lblHidden.Text = txtssn.Text.ToString().Replace("-", "");
            lastFourSSN = Utility.Encode.GetLast(lblHidden.Text.ToString(), 4);
            txtssn.Text = "XXX-XX-" + lastFourSSN;

【问题讨论】:

标签: javascript jquery asp.net


【解决方案1】:

这对您来说无疑是个好主意。 jQuery 将在这里解决问题。

首先,您可以连接客户端事件,然后关闭该文本框的自动回发(可能您已经这样做了,因为您注意到您从不希望为这么小的任务进行回发)。

好的,您的标准文本框将如下所示:

<asp:TextBox ID="TextBox1" runat="server" 
 onchange="mychange();"  Width="280px" ClientIDMode="static" ></asp:TextBox>

我确实添加了ClientIDMode静态,它只是让js更友好地拿起控件。

并且“onchange”事件实际上与服务器端的回发和更改事件相同(但当然是客户端)。

那么,我们的js呢?这行得通:

<script>
    function mychange() {
        var txt1 = $('#TextBox1');
        s = txt1.val();
        if (s.length > 5) {
            s = "XXXXX" + s.substring(s.length - 4, s.length);
            txt1.val(s);
        }
    }
</script>

在 js 或 jQuery 中没有方便的“正确”功能。但是你可以稍微调整一下上面的内容。

注意子字符串是从 0 开始的。

您也许可以调整上述内容。您甚至可以删除上面的“如果”,但以上内容是一个很好的基础起点。

【讨论】:

  • 谢谢。我根本没有修改代码。它马上就奏效了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
相关资源
最近更新 更多