我有验证问题,如果我在字段上使用k-ng-model,该字段在Angularjs验证中不需要,用户可以提交表单,所以下面的代码字段是必需的,即使我不选择值,用户仍然可以提交表单。你知道怎么解决吗?
main.html
<div class="row">
<div class="form-group col-md-12">
<label for="themesList" class="required col-md-4">Themes:</label>
<div class="col-md-8">
<select class="multiselect" kendo-multi-select="themes"
k-options="challengThemesOptions" data-text-field="'text'"
data-value-field="'id'" name="themesList"
k-ng-model="challengesDTO.themesKyList" required
id="themesList"></select>
<p class="text-danger" ng-show="addChallengeForm.themesList.$touched && ddChallengeForm.themesList.$error.required">Theme(s) is required</p>
</div>
</div>
</div>
您可以将ng-model与k-ng-model一起使用,尝试将ng-model分配给一个单独的变量,并使用ng-required。
<select class="multiselect" kendo-multi-select="themes"
k-options="challengThemesOptions" data-text-field="'text'"
data-value-field="'id'" name="themesList"
k-ng-model="challengesDTO.themesKyList" ng-model="challengesDTO.themesKyListValue" ng-required
id="themesList"></select>
这个解决方案对我很有效:kendo ui, angular需要验证数字文本框
只需为每个kendo小部件创建一个隐藏输入,并将k-ng模型中的模型绑定到隐藏字段的ng模型。k-ng-model似乎不是NgModelController,这就是验证器不能挂钩到模型的$validators并完成它们的工作的原因。
<input kendo-date-time-picker k-ng-model="$ctrl.event.endDate"></input>
<input type="hidden" name="endDate" ng-model="$ctrl.event.endDate" required></input>