2016-04-12 23 views
1

私はregexを使用していることに気付いていますが、それを使用しない可能性はありますか?これはモーダルフォームの私のテキストフィールドユーザ名です。私は、数字と文字だけを入力することができ、空白と特殊文字は入れないようにしたい。番号と文字のみを入力できるようにするには?

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

      }; 

誰かが私を助けることができれば感謝します。

+0

AngularJSについてはわかりませんが、「パターン」というHTML5属性があります。詳しくはhttp://www.w3schools.com/tags/att_input_pattern.asp – CodeMonkey

+0

私はこのパターン= "[a-zA-Z0-9]"を含めようとしました。しかし、それは私が欲しいものと一致しないようだ。私は何が欠けていますか? @Inuka – sue

+0

私は答えに私の考えを加えました。どうぞご覧ください。 – CodeMonkey

答えて

1

は同様にあなたのテキストフィールドにid="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); 
    }); 
}); 

のようにそれを実行してください。

Live demo

編集

あなたが複数のユーザ名フィールドを持っている場合は、代わりのid="username"使用class="username"$('.username')にJavascriptを変更します。したがって、複数のテキストフィールドで動作します。

+0

は、コントローラーに関係なくhtmlでパターンを設定したいだけの場合は可能ですか?このリンクにリンクするだけですか? http://www.w3schools.com/tags/att_input_pattern.asp – sue

+0

私が言ったように、私はAngularJSについての知識はありませんが、これはJavascriptであり、これはあなたのコードで動作するはずです。また、あなたが今やっているようなajaxからテキストフィールドを挿入する場合、このコードはマスターJSファイルに置いている限り動作します。プロジェクトのバックアップをとり、試してみてください。 :) – CodeMonkey

+0

それが動作します。ありがとうございます! – sue

関連する問題