Как сделать принудительно необязательный контроль в кнопке отправки - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть текстовое поле A и две кнопки B & C в форме.
Если я не заполняю что-либо в текстовом поле A

  • Когда я нажимаю кнопку B, тогда следует сказать, что требуется.
  • Когда я нажимаю кнопку С., тогда не должно быть сказано:

ФАЙЛ HTML

<form name="nm_eventform" novalidate> 
 <input type="text" ng-model="md_eventname" name="nm_evtname" required />
   <div ng-messages="nm_eventform.nm_evtname.$error" role="alert">
     <div ng-message="required" class="divMasterMsg">Event Name is required</div>
   </div> 
 <button type="submit">B</button>
 <button type="submit" ng-click="ButtonC()">C</button>
</form>

Как я сделал, яне нужно ничего писать в ButtonB ().Поскольку я хочу подавить обязательное условие в ButtonC (), поэтому я использую $ setValidity, но это не делает мою форму действительной.

Файл JS

$scope.ButtonC= function () {        
        $scope.nm_eventform.nm_evtname.$setValidity('required', false);        
        if ($scope.nm_eventform.$valid) {    
        }
}

Iпопробовал ng-required, но это не подходит для моего случая.

1 Ответ

1 голос
/ 23 апреля 2019

Вам необходимо использовать ng-required вместо required, как ng-required="{{editing == false ? true : false}}", и изменить значение true или false в соответствии с событием нажатия кнопки.

    <form name="nm_eventform" novalidate> 
     <input type="text" ng-model="md_eventname" name="nm_evtname" ng-required="{{editing == false ? true : false}}" />
       <div ng-messages="nm_eventform.nm_evtname.$error" role="alert">
         <div ng-message="required" class="divMasterMsg">Event Name is required</div>
       </div> 
     <button type="submit">B</button>
     <button type="submit" ng-click="ButtonC()">C</button>
    </form>

**For Js File:**

$scope.ButtonC= function () {        
        $scope.editing  = true;
}
...