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

时间:2016-04-12 02:06:04

标签: 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>

这是控制器部分。

    $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: ""

            };

感谢任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

这样做

$(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

修改

如果您有多个用户名字段,而不是id="username"使用class="username"并将Javascript更改为$('.username')。所以它适用于多个文本字段。