javascript - 如何让用户只输入数字和字母?

标签 javascript angularjs

我知道使用正则表达式,但是可以不使用它吗?这是我的模式形式的文本字段用户名。我想允许用户仅输入数字和字母,不包含空格和特殊字符。

<div class="form-group has-feedback" ng-class="addUser.username.$valid ? 'has-success' : 'has-error';">
 <label class="control-label" for="username">Username</label>
  <input class="form-control" name="username" ng-model="user.username" required>
   <span class="glyphicon form-control-feedback" ng-class="addUser.username.$valid ? 'glyphicon-ok' : 'glyphicon-remove';"></span>
</div>

这是 Controller 部分。

    $scope.users = [{
    username: "a"
}];


$scope.addUser = function(user) {
    $dialog.open({
        showClose: false,
        closeByEscape: true,
        template: 'views/user/user-user-add.html',
        controller: ['$scope', function($dialogScope) {
            $dialogScope.isLoading = false;
            $dialogScope.errorMessage = "";
            $dialogScope.title = "New User";
            $dialogScope.user = {
                username: ""

            };

感谢有人能帮助我。

最佳答案

这样做

$(function() {
    $('#username').on( 'keydown', function( e ) {
        if( !$( this ).data( "value" ) )
             $( this ).data( "value", this.value );
    });
    $('#username').on( 'keyup', function( e ) {
        if (!/^[_0-9a-z]*$/i.test(this.value))
            this.value = $( this ).data( "value" );
        else
            $( this ).data( "value", null );
    });
});

请将 id="username" 属性添加到您的文本字段。

Live demo

编辑

如果您有多个用户名字段,请使用 class="username" 代替 id="username" 并将 Javascript 更改为 $('.username ')。所以它可以在多个文本字段上工作。

关于javascript - 如何让用户只输入数字和字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36562393/

相关文章:

javascript - AngularJS 指令未正确绑定(bind)属性

javascript - 脚本未在 Chrome 上运行

javascript - 使用javascript替换@后跟的文本

javascript - promise API

javascript - 将 JS 变量作为对象标签中的数据属性

angularjs - 使用正常函数或数组表示法的 Controller

angularjs - 当我在 Protractor cucumber 步骤定义的when部分定义{string}参数时,未定义

javascript - 使用jqLit​​e隐藏和显示html元素

javascript - 更改包含其他元素的元素的文本

内容加载后调用的 AngularJs 事件