限制用户在C#razor视图中仅输入double或int值

时间:2016-06-10 05:01:14

标签: c# razor

我是C#的新手并试图在文本框周围进行一些验证。

我正在尝试创建一个智能文本框,限制用户输入任何字母。

我希望文本框可以接受这些输入,并且不允许用户输入任何其他字符

有效

34.54 23 2.3433

无效 ABCF (用户按键但屏幕上应该没有任何内容,即被拒绝)

34.33.443.22

这是我在C#View中的文本框代码

@Html.TextBoxFor(model => model.CreditLimitSaveData.CreditLimit, new { @maxlength = "20", @size = "20" })

由于

2 个答案:

答案 0 :(得分:1)

如果您想限制用户输入仅包含数字,句点和空格,请使用以下方式:

<script type="text/javascript">
// if you intend to use vanilla JS rather than jQuery, replace $("#text").keypress with document.getElementById("text").onkeypress
$("#text").keypress(function (evt) {
     // keyCode note:
     // 46 = delete
     // 49-57 = numbers 0-9
     // 32 = whitespace
     // 190 = period
     var code = (evt.which) ? evt.which : evt.keyCode;
     // if you want to allow left-right arrow, include checks for keyCode 37 & 39
     if (code != 46 && (code < 48 || code > 57) && code != 32 && code != 190) {
         return false;
     }
     else {
         return true;
     }
});
</script>

@Html.TextBoxFor(model => model.CreditLimitSaveData.CreditLimit, new { @maxlength = "20", @size = "20", @id = "text" }

需要使用id htmlAttribute元素来强制执行验证规则。

CMIIW。

答案 1 :(得分:0)

将属性type设置为number以允许int值。

@Html.TextBoxFor(model => model.CreditLimitSaveData.CreditLimit, new { @maxlength = "20", @size = "20", @type="number" }

maxlength无法与input type="number"一起使用,因此您需要一些javascript来限制此操作。