0

あなたはうまくいきたいと思います。angularJSが指令で機能していません

私は、angularJSの属性(not emptに対して有効)を必要とするinput = "text"を持っています。

以下のjsコードは、ユーザーに数字だけを入力させるテキストの指示です。

デフォルトでは、警告がオンになっています。今問題は、テキストボックスに数字以外のキーワードを入力すると、文字は入力されませんが、必要なエラーは消えます!!!!!!結果は空の値を持つテキストボックスであり、必須のエラーメッセージではありません!

angular.module('league').directive('numbersOnly', function() { 
 
    return { 
 
     require: 'ngModel', 
 
     link: function (scope, element, attr, ngModelCtrl) { 
 
      function fromUser(text) { 
 
       if (text) { 
 
        var transformedInput = text.replace(/[^0-9]/g, ''); 
 

 
        if (transformedInput !== text) { 
 
         ngModelCtrl.$setViewValue(transformedInput); 
 
         ngModelCtrl.$render(); 
 
        } 
 
        return transformedInput; 
 
       } 
 
       return undefined; 
 
      }    
 
      ngModelCtrl.$parsers.push(fromUser); 
 
     } 
 
    }; 
 
}); 
 

 

 

 
<input type="text" class="CreateTxt" ng-model="league.name" name="leagueName" required /> 
 
<span ng-show="myForm.leagueName.$error.required" style="color:red">Its required...</span>

答えて

1

あなたは= "番号" タイプを使用して同じ動作を実現することができませんでしたか?

あなたはエラーを必要とされていないパースエラーになりますそれ以外の角度

return null; 

return undefined;

を変更する必要があります。だから、あなたはフォールバックの価値のためのあなたの選択を除いて、ほとんどすべてをうまくやった。

+0

ありがとうございます。 –

+0

私は 'e'と他のいくつかの問題が存在するので、type = numberを使いたいと思っています。 –

関連する問題