我正在处理一个动态表单,它根据另一个输入有条件地填充下拉列表。我写了一个指令,因为返回的数据也会带有需要应用的验证规则。但是,当我将验证规则应用于下拉列表并重新编译时,选择选项会被禁止。最终的HTML看起来像这样:
表格上的问题可能取决于另一个人在出现之前以非常具体的方式回答。例如,此下拉列表取决于所选的国家/地区,但可能是必需的或可选的,具体取决于所选的国家/地区。从我的服务器返回的数据为我提供了一个验证对象,其中包含输入字段的验证信息,例如:
var question = scope.question;
var input = element.find('select');
if (question.validation.required) {
if (!input.attr('required')) {
input.attr('required', question.validation.required);
}
}
$compile(input)(scope);
标准<option value="?" selected="selected"></option>
被放入但是当下拉列表所依赖的问题触发监视并且服务器返回的下拉列表发生请求并且后备选择值被更改但是HTML输出结果如上所示设置为选定的项目是不可选择的,表单验证失败。
function answerMatch(countryCode) {
sectionService.getDivisionsByCountryCode(countryCode).then(function (response) {
scope.question.selectValues = response.data;
element.show();
});
}
以及用于衡量标准的HTML代码段
<select id="question{{question.questionId}}" name="answer" ng-model="question.value" ng-options="value.text for value in question.selectValues" class="form-control">
</select>