我有一个表单中的文本框A和两个按钮B&C。
如果我没有在文本框A
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必需,但它不适合我的情况。
答案 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;
}