1

数字のみを許可し、文字制限があるようにするにはテキストボックスにします。入力テキストの文字制限

現在のところ、私は数字を使用しています...今、文字を制限する方法を考え出すのに問題があります。

app.directive('numbersonly', function() { 
    return { 
     restrict: 'A', 
     link: function (scope, elm, attrs, ctrl) { 
      elm.on('keydown', function (event) { 
       if (event.which == 64 || event.which == 16 && elm.val().length > 4) { 
        return false; 
       } else if (event.which >= 48 && event.which <= 57) { 
        return true; 
       } else if (event.which >= 96 && event.which <= 105) { 
        return true; 
       } else if ([8, 13, 27, 37, 38, 39, 40].indexOf(event.which) > -1 && elm.val().length > 4) { 
        return true; 
       } else { 
        event.preventDefault(); 
        return false; 
       } 
      }); 
     } 
    } 
}); 

は、マークアップ:HTML入力属性の長さで

<input type="text" id="txtEmpAge" data-ng-model="newemployee.Age" class="form-control" numbersonly required /> 

答えて

1

ここ

は...私が持っているもの

JSです。私は同じ問題を持っていたし、それをすべて把握するディレクティブを書いて、

長さをMINLENGTHと

この

maxlength="5" 
+0

マークアップのない指示文で処理したい – user4756836

+0

HTMLで処理したくない場合は、リンク関数で渡した要素の属性を変更するだけですか?私は何かが欠落しています。あなたが望む限界を隔離された範囲に入れなければならないと仮定しています。これは、指示文でHTMLに入れなければならないか、すべての入力を同じ長さにしますか? – Maccurt

+0

@Maccurt私はmaxlengthを許さない入力番号に対して同様の指示文を使用しているため、maxはうまく動作しないようです。 – user4756836

0

を試してみてくださいをMAXLENGTH:我々は、複数のフォームで使用することができます。それから、angle-dynamic-numberと呼ばれるプラグインが見つかりました。私はそれがあなたの必要性を満たしているなら、それを使うことをお勧めします。 https://www.npmjs.com/package/angular-dynamic-number

+0

これを行うプラグインはありません – user4756836

+0

私はなぜあなたが 'プラグインを使用したくないですか? – Maccurt

関連する問題