为验证创建掩码只有int数字js

时间:2015-12-28 16:46:16

标签: javascript asp.net-mvc validation asp.net-mvc-4

我有这个观点

我希望字段在输入值

时只接受整数

查看

<div class="RDANumber"></div>
  @Html.EditorFor(i => i.NumRDA)
<div class="clear"></div>

我尝试使用js代码,但没有成功。

我哪里错了?

有什么更好的方法可以做到这一点?

JS

<script type="text/javascript">
$(document).ready(function () {
    $("#RDANumber").keydown(function (event) {
        if (event.shiftKey) {
            event.preventDefault();
        }
        if (event.keyCode == 46 || event.keyCode == 8) {
        }
        else {
            if (event.keyCode < 95) {
                if (event.keyCode < 48 || event.keyCode > 57) {
                    event.preventDefault();
                }
            }
            else {
                if (event.keyCode < 96 || event.keyCode > 105) {
                    event.preventDefault();
                }
            }
        }
    });
});

3 个答案:

答案 0 :(得分:0)

您不需要编写一些javascript代码,因为它已经内置在ASP.Net MVC框架中:

  1. 检查您是否启用了客户端验证,并在web.config中启用了不显眼的javaScript:
  2. opacity
    1. 检查您在Razor视图中是否正确引用了客户端验证Javascript文件:jQuery,jQuery Validate和jquery.validate.unobtrusive.js。
    2. 在。{c}文件中的<appSettings> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> 属性旁边插入验证属性:
    3. NumRDA

答案 1 :(得分:0)

你可以选择其他方式

1 - 使用jquery插件click here

2 - only numeric (0-9) in HTML inputbox using jQuery

答案 2 :(得分:0)

使用时

@Html.EditorFor(i => i.NumRDA)

它会生成

<input type="text" name="NumRDA" />

给你

然后您可以使用以下代码来阻止用户输入非数字字符

$(document).ready(function () {
$( "input[name='NumRDA']" ).keydown(function (event) {
    if (event.shiftKey) {
        event.preventDefault();
    }
    if (event.keyCode == 46 || event.keyCode == 8) {
    }
    else {
        if (event.keyCode < 95) {
            if (event.keyCode < 48 || event.keyCode > 57) {
                event.preventDefault();
            }
        }
        else {
            if (event.keyCode < 96 || event.keyCode > 105) {
                event.preventDefault();
            }
        }
    }
});
});

And here is the jsfiddle example