入力された値が数値でない場合、input:textbox
の値をリセットしようとしています。私は入力を検証するためにng-changeを使用しています。以下のコードを参照してください値がevent.target.valueで更新されたときにng-changeが2度目にトリガされない
<input type="text" ng-change="onChange(this.P)" ng-model="P" class="col-xs-4 col-sm-4 col-md-4 col-lg-4" placeholder="Principle" />
<input type="text" ng-change="onChange(this.R)" ng-model="R" class="col-xs-4 col-sm-4 col-md-4 col-lg-4" placeholder="Rate" />
<input type="text" ng-change="onChange(this.T)" ng-model="T" class="col-xs-4 col-sm-4 col-md-4 col-lg-4" placeholder="Time" />
注記onChange関数は3つのテキストボックスすべてから呼び出されています。
$scope.onChange = function(n) {
if (!$scope.isNumeric(n)) {
event.currentTarget.value = '';
}
問題を次のように
onChange
機能は次のとおりです。問題は、私は同じ数字以外のアルファベットを入力すると、二回ng-change
イベントがトリガされていないということです。
たとえば、キーq
を2回押すと、ng-change
は、キーを2回押したときにトリガーされません。
参照jsFiddle here
追加の質問:テキストボックスの値をリセットする任意のより良い方法はありますか?
はありがとうございます。これは手元の問題を解決しますが、2回目の起動ではない 'ng-change'イベントの一般的な解決策ではないと私は信じています。 – Taleeb