【问题标题】:Best way of validating/creating a number only text-box?验证/创建仅数字文本框的最佳方法?
【发布时间】:2011-01-06 21:48:24
【问题描述】:

我想要一个仅限数字/货币的文本框控件。

所以基本上它应该接受这种输入

123 美元 523,100 12.50 美元 85.59

并将其转换为

123 523100 12.50 85.59

并且不应该接受这个输入

F12 309$2342 ,102

我查看了验证器控件,但我想完全从客户端进行这种转换/检查。这样做的最佳方法是什么?

如果他们尝试输入无效数据并防止他们将错误数据留在文本框中,我还希望弹出客户端错误(消息框或其他内容)。然后当他们离开文本框的焦点时,它会自动将数据从客户端转换为平面数字。

我将如何开始这样做? ASP.Net 中有什么可以帮助我的吗?我是否需要只使用 onfocus 事件或 javascript 中更可取的事件来验证这一点?我在 Javascript 方面也相当缺乏经验。所以如果这有点笨拙,我深表歉意。

是的,我还将在服务器端进行验证

【问题讨论】:

  • 我不会仅仅依赖客户端验证,最好是提供即时用户反馈,但不能确保数据在处理前已标准化。
  • 好吧,当然,基本上只有float.parse 类型的东西,如果它失败了,那么应用程序就会死掉。不检查服务器端的用户输入是愚蠢的

标签: c# asp.net javascript validation currency


【解决方案1】:

您可以尝试使用isNaN() 验证文本框中的值,以在每次击键后检查该值是否为数字。

不管怎样,这个问题之前已经回答过了:Validate decimal numbers in JavaScript - IsNumeric()

【讨论】:

    【解决方案2】:

    如果您需要拒绝某些输入,则依赖客户端验证会带来安全风险。

    如果您在网站上使用 MS Ajax,则可以使用 MaskedEditExtenderFilteredTextBox。否则有很多很棒的 javascripts 可以做客户端验证,特别是与 jQuery 一起使用。

    只是不要忽略服务器端的验证。

    【讨论】:

      猜你喜欢
      • 2010-11-30
      • 1970-01-01
      • 2015-09-18
      • 2011-05-27
      • 2011-06-03
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      相关资源
      最近更新 更多