使用How to limit input[number]中的指令会导致问题。
当输入达到最大值时,我想标记输入(双击输入)然后按一个数字使其改变整个输入不要改变它,因为指令{{1} } 可以在以下位置查看选择事件:
e.preventDefault();
解决这个问题的最佳方法是什么? 指令:
angular.element(elem).on("select", function(e) {
console.log(e);
});
并使用:
angular.module('myApp')
.directive('limitTo', limitTo);
function limitTo() {
return {
restrict: "A",
link: function(scope, elem, attrs) {
var limit = parseInt(attrs.limitTo);
angular.element(elem).on("keypress", function(e) {
if (this.value.length == limit){
e.preventDefault();
}
});
}
}
};
答案 0 :(得分:0)
因此,为了解决这个问题,我使用window.getSelection().toString()
并确保选择符合输入:
if(this.value.length == limit && window.getSelection().toString() == this.value){
//logic goes in here...
}
答案 1 :(得分:0)
如果您想对输入字段进行限制,然后使用ng-minlength="6"
ng-maxlength="6"
,则可以在angularjs中指定限制。
<input type="number" class="form-control form-control-lg" ng-minlength="6" ng-maxlength="6"
ng-model="vm.details.m_inputSMS" placeholder = {{vm.configProprs.kodPlaceHolder}}
name ="m_inputSMS" id="m_inputSMS" ng-model-options="{ updateOn: 'blur' }"required/>