2015-07-29 3 views
0

У меня есть текстовое поле на моей угловой форме js для продажи Цена предмета. Это поле не требуется, однако я хочу, чтобы оно проверялось на допустимый номер/десятичный ввод> 0, если пользователь помещает значение в поле. Любой недопустимый вход должен принудительно вернуть поле обратно к десятичному знаку.Угловой JS - Проверка количества Если TextField не пуст

Я пробовал несколько разных вариантов моей основной директивы validNumber, но я не могу заставить ее работать. Моя директива отлично работает, если я хочу, чтобы значение всегда требовалось для ввода.

Вот директива, которую я использую сейчас для RetailPrice, которая требуется. Я отрубил код, который я добавил, так как он не работал в любом случае.

app.directive('validNumber', function() { 
    return { 
     require: "ngModel", 
     link: function (scope, elm, attrs, ctrl) { 
      var regex = /^\d{1,3}(,\d{3})*(\.\d+)?$/; 
      var validator = function (value) { 
       ctrl.$setValidity('validNumber', regex.test(value)); 
       return value; 
      }; 
      ctrl.$parsers.unshift(validator); 
      ctrl.$formatters.unshift(validator); 
     } 
    }; 
}); 

ответ

1
<label class="span5"> Username:<span style="color: red" ng-show="manageupdateuser.loginname.$error.required" >*</span></label> 
      <div class="span6"> 
       <input class="span12" type="text" name="loginname" ng-model="oldusername" ng-pattern="/^[a-zA-Z]+$/" ng-minlength="2" ng-maxlength="25" required> 
       <span style="color: red" ng-show="manageupdateuser.loginname.$error.minlength">Allow minimum 2 characters.</span> 
       <span style="color: red" ng-show="manageupdateuser.loginname.$error.maxlength">Allow maximum 25 characters.</span> 
       <span style="color: red" ng-show="manageupdateuser.loginname.$error.pattern">Any other symbol are not allow.</span> 
      </div>  

Это демо для только позволит Аз и Аз или минимальную и максимальную длину ...
также цифра или Отер специальный символ не позволяют ...
Вы не указано, какой тип проверки вам нужно ...

+0

Спасибо за быстрый ответ сэр. Это отлично работает для буквенно-цифровых, однако я ищу числовую/десятичную проверку для значения. –

+0

вы меняете только ng-pattern .... напишите регулярное выражение для ваших нужд ... это непосредственно работа –

+0

ng-pattern = "/^[1-9] \ d * (\. \ D +)? $ /" Add эта проверка хорошо работает –