【问题标题】:Blocking spaces ASP MVC and Javascript阻塞空间 ASP MVC 和 Javascript
【发布时间】:2016-10-11 15:33:03
【问题描述】:

我正在尝试验证用户在我的视图中输入的代码。我希望它是 MAJ,只有字母和数字。所以没有 ""/(!/ 或空格。除了空格,一切都很好......

这是代码

@Html.TextBoxFor(m => m.Code, new { @onkeydown = "onKeyDown(this);", @class = "input-visual-helper form-control", placeholder = @MyProject.Resources.home.ActivationCode })


            <script type="text/javascript">
            function onKeyDown(a) {
                var charCode = (a.which) ? a.which : event.keyCode

                setTimeout(function () {
                    a.value = a.value.toUpperCase();
                }, 1);

                return ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 8 || (charCode >= 48 && charCode <= 57));
            }
        </script>

我对返回的条件做了一个 console.log,当我输入空格时它记录为 false(代码 32)。我什至尝试过 if(charCode ==32) return false。还是不行……界面一直在文本框中做一个空格。

任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 我知道这不是您问题的直接答案,但您是否考虑过使用插件,例如:igorescobar.github.io/jQuery-Mask-Plugin
  • 是的......我想让事情尽可能简单:S 感谢您的快速回答

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


【解决方案1】:

        $("#jam").keydown(function (e) {
             if (e.keyCode == 32) { 
               return false; 
             }
        });
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  
</head>
<body>
<input id="jam"/>
</body>
</html>

这样的?

 <script type="text/javascript">
    $("#targetElement").keydown(function (e) {
         if (e.keyCode == 32) { 
           return false; 
         }
    });
 </script>

https://jsbin.com/didohiloni/1/edit

对于 MVC 文本框,您可以在其中附加 new { id = "youid" }

【讨论】:

  • @Helpha 没问题,很高兴我能提供帮助。
【解决方案2】:

如果有人想要完整版本的代码

控制:

 @Html.TextBoxFor(m => m.Model.Code, new { @onkeydown= "onKeyDown(this)",  @id = "bindingCode", @class = "input-visual-helper form-control", placeholder = @Resources.home.Code })


 <script type="text/javascript">
            //No spaces and no special characters
            $(document).on('keypress', '#bindingCode', function (event) {
                if (event.keyCode == 32) {
                    return false;
                }
                var regex = new RegExp("^[A-Z0-9]+$");

                var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
                key = key.toUpperCase();
                if (!regex.test(key)) {
                    event.preventDefault();
                    return false;
                }
            });
          //  All Letters in maj
            function onKeyDown(a) {
                var charCode = a.which;
                setTimeout(function () {
                    a.value = a.value.toUpperCase();
                }, 1);

            }
        </script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多