javascript - 如何仅将数字分配给 MVC View 中的文本框

标签 javascript jquery asp.net-mvc

我在只需要数字的地方放了一个文本框。我想在客户端验证一下,写了下面的代码

@using (Html.BeginForm("LoyaltyPoints","Cart",FormMethod.Post))
{
<label>Enter point:</label>
<br />
@Html.TextBoxFor(m => m.txtLoyaltyPoints, new { @onkeypress = "OnlyNumeric(this)" })
<br />
<input type="submit" value="Submit" />
<br />
@ViewBag.LoyaltyPointsErrorMessage
}

@Scripts.Render("~/bundles/jquery")
<script type="text/javascript">
function OnlyNumeric(e) {
    if ((e.which < 48 || e.which > 57)) {
        if (e.which == 8 || e.which == 46 || e.which == 0) {
            return true;
        }
        else {
            return false;
        }
    }
}

现在我的 javascript 没有触发。我试着在这里保持警惕,但没有按预期工作。可能是什么错误。请帮忙。

最佳答案

使用以下代码:

@Html.TextBoxFor(m => m.txtLoyaltyPoints, new {@id ="txtLoyalty" })`


<script type="text/javascript">
$(document).ready(function () {
    $("#txtLoyalty").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();
                }
            }
        }
    });
});

关于javascript - 如何仅将数字分配给 MVC View 中的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762151/

相关文章:

jquery - 当元素内部的内容发生变化时,保持元素的第一个高度

jquery - Nodejs 函数中的域错误处理程序装饰器

c# - 在 ASP.NET MVC 5 中将图像添加到数据库

jquery - Blueimp Jquery-File-Upload 通过 IE 9 在 MVC Controller 中提交空文件

c# - Ajax.beginform 执行完整回发而不是部分回发

javascript - 如何创建在使用 Ajax 或刷新页面时不刷新的顶部栏?

javascript - typescript 编译器类型赋值错误被忽略

javascript - 一个函数中的全局变量赋值在另一个函数中无法访问

javascript - 通过 DOJO JS 升级

javascript - 我想在 angular.js 中获取按钮单击事件的先前路径