在我的cshtml页面中,我使用输入类型=“数字”进行最小验证。我也有条件地显示这个控制。我只想验证在控件可见时显示ng-show =“true”但在两种情况下都会触发(对于ng-show =“false”)。以下是示例:Modified sample Plunker
我的控制如下:
<input type="number" name="maxSale" ng-show="!selections.createDaily"
id="maxSale"
ng-model="currentmax4sale.maxSale"
class="form-control"
min="1"
required
data-sm:number
data-sm:number-format data-sm:focus
data-accuracy="0" />
<div class="field-validation-error">
<span ng-show="form.editMax4saleGeneralForm.maxSale.$error.required && form.editMax4saleGeneralForm.maxSale.$dirty">@String.Format(Messages.isRequired, Labels.limit)</span>
<span ng-show="(form.editMax4saleGeneralForm.maxSale.$error.min ) && form.editMax4saleGeneralForm.maxSale.$dirty">
@String.Format(Messages.mustBeGreaterThanOrEqualTo, Labels.limit, "1")
</span>
</div>
当我的控件可见时,我该怎么办才能进行条件验证?
答案 0 :(得分:1)
你真的建议你使用ng-if
,基本上标记仍然存在,但是ng-if
它会将它从DOM中删除,因此它甚至不会被渲染,因此解决了你的问题。您也可以更改您正在测试的逻辑,但我认为您根本不想要标记中的项目。
答案 1 :(得分:0)
我使用{{}}条件值解决了问题,例如
http://plnkr.co/edit/cNahYe8QpNITkDBe3YE3?p=preview
min="{{selections.createDaily?'0': '1'}}"
&#13;