【问题标题】:ASP.net: TextBox allows out of the range numbers when typed through keyboard in TextMode = "Number"ASP.net:在 TextMode = "Number" 中通过键盘键入时,TextBox 允许超出范围的数字
【发布时间】:2016-04-14 11:33:37
【问题描述】:

我希望在 ASP.net 网络表单中使用 NumericUpDown 的 TextBox 值介于 1 和 99 之间。 (不使用 NumericUpdown Extended Ajax Control Toolkit,因为我的客户不允许这样做)。因此,为此我使用以下代码:

<asp:TextBox TextMode="Number" runat="server" min="1" max="99" step="1" ID="tbRooms" />

当我使用向上和向下箭头键时,这很好用,它的范围仅在 1 到 99 之间,正如预期的那样。但是,当我从键盘键入值时,它会采用任何随机值,比如 1000。我尝试输入 MaxlLength = "2",但没有成功。那么,我该如何解决这个问题,即使通过键盘也不允许任何随机数。

谢谢。

【问题讨论】:

  • 向文本框添加范围验证器。
  • 您不希望他们能够输入 1000 吗?或者您想告诉他们在您输入 1000 时输入 1 到 99 之间的内容?
  • 应该是 asp:TextBox 而不是 asp:TextMode?​​span>
  • @abramlimpin 是对的。 :)

标签: c# asp.net c#-4.0 webforms textbox


【解决方案1】:

请试试这个:

<table border="0" cellpadding="0" cellspacing="0">
   <tbody>
      <tr>
         <td>
            <b>Enter Value</b>
            <asp:textbox runat="server" id="txtRangeValidator">
            </asp:textbox>
         </td>
      </tr>
      <tr>
         <td>
            <asp:rangevalidator ID="Rangevalidator1" errormessage="Please enter value between 1-99." forecolor="Red" controltovalidate="txtRangeValidator" minimumvalue="1" maximumvalue="99" runat="server" Type="Integer">
            </asp:rangevalidator>
         </td>
      </tr>
   </tbody>
</table>

【讨论】:

    【解决方案2】:

    onKeyPress 添加此代码:

    onKeyPress="if(this.value.length==2) return false;"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-12
      • 1970-01-01
      • 2016-03-02
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      相关资源
      最近更新 更多