如何在提交按钮中强制强制非强制性控制

时间:2019-04-23 04:39:40

标签: angularjs ng-messages

我有一个表单中的文本框A和两个按钮B&C。
如果我没有在文本框A

中填写任何内容
  • 当我按下按钮B时,它应该说是必需的。
  • 当我按下按钮C时,它不应说是必需的。

HTML文件

<div class="search-form">
  <form
    action="."
    @submit.prevent
    @keyup="onKey($event)">
    <input
      v-model="keyword"
      :placeholder="search form"
      type="search"
      @keypress="setCanMessageSubmit($event)">
  </form>
</div>

按照我的要求,所以我不需要在ButtonB()中编写任何内容。因为我想取消ButtonC()中的强制条件,所以我使用$ setValidity,但是它没有使我的表单有效。

JS文件

<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>

我尝试了ng必需,但它不适合我的情况。

1 个答案:

答案 0 :(得分:1)

您需要使用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;
}