html - 如果第一个数字已经是 0,则文本框不应接受多个 0
问题描述
当第一个数字已经是 0 时,文本框接受多个 0
<asp:TemplateColumn>
<HeaderTemplate>
Consumed
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtConsumed" runat="server" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvtxtQty" runat="server"
ControlToValidate="txtConsumed" Display="Dynamic" ErrorMessage="*Required"
ValidationGroup="Val_Packages" />
<ajaxToolkit:FilteredTextBoxExtender ID="FilteredTextBoxExtender27" runat="server" TargetControlID="txtConsumed"
FilterType="Numbers" Enabled="True" />
<br />
</ItemTemplate>
</asp:TemplateColumn>
当我多次按 0 时,我需要文本框只显示 1 个“0”。
解决方案
您可以使用以下代码。KeyPress 事件触发不允许任何非数字字符的代码,而 KeyUp 事件触发删除除一个前导零之外的所有字符的代码。当您按要求输入文本时,它将起作用。
Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
If Mid(TextBox1.Text, 1, 1) = "0" Then
If Mid(TextBox1.Text, 2, 1) = "0" Then
TextBox1.Text = Mid(TextBox1.Text, 2, Len(TextBox1.Text) - 1)
Else
End If
Else
End If
TextBox1.SelectionStart = Len(TextBox1.Text) + 1
End Sub
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
e.Handled = Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar))
End Sub
推荐阅读
- angular - 角度 6 到 8,角度通用,发生未处理的异常:未在工作区中设置配置“生产”
- c++ - 尝试从头实现 Leetcode 的 FizzBuzz 多线程问题。出现“libc++abi.dylib:终止”错误
- cordova - Cordova HTTP 插件如何禁用超时?
- c++ - 无法在 CLion 编辑器中调试程序
- java - 使用 Zomato API 搜索附近的餐馆
- python - Python - 使用 docx 从 word 文档中提取具有某些特征的文本
- javascript - XMLhttprequest 返回空 responseText 和 readyState == 4 (WickedPF)
- vb.net - 在 UserControl 类中引发事件
- amazon-web-services - kubeadm join 请求集群信息失败
- swift - Firebase/Crashlytics 版本 4.0.0-beta.1 - ForceCrash?