如果輸入的值是非數字,我試圖重置input:textbox
的值。我正在使用ng-change來驗證輸入。請參閱下面的代碼當使用event.target.value更新值時ng-change不會觸發第二次
<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函數從所有三個文本框中調用。
的onChange
功能如下
$scope.onChange = function(n) {
if (!$scope.isNumeric(n)) {
event.currentTarget.value = '';
}
問題:問題是,如果我輸入相同的非數字字母兩次ng-change
事件不會被觸發。
例如,如果按鍵q
被按下兩次,ng-change
第二次按鍵時不會觸發。
見的jsfiddle here
其他問題:有沒有更好的方式來重置文本框的值?
謝謝。這確實解決了手頭的問題,但我不相信是對ng-change事件沒有第二次觸發的通用解決方案。 – Taleeb