首页 > 解决方案 > 带有隐藏字段和角度验证插件的 ui-select 验证

问题描述

好吧,我的表单中有一个隐藏字段并试图验证该ui-select元素。我正在使用Angular-Validation插件,它依赖于jQuery Validate插件。在提交时它显示错误标签,但是当隐藏字段从 中获取它的值时ng-model,仍然显示错误并且我无法提交表单。

这是html

<ui-select ng-model="noPostData.locaopt.id" theme="selectize">
   <ui-select-match placeholder="Select Location">
      {{$select.selected.name}}
   </ui-select-match>
      <ui-select-choices repeat="obj.id as obj in locaoptions | filter: {name: $select.search}">
          <div ng-bind-html="obj.name | highlight: $select.search"></div>
      </ui-select-choices>
</ui-select>
<input type="hidden" name="subloc_loca" ng-model="noPostData.locaopt.id">

这是选项

$scope.validationOptions={
        ignore: [],
        rules: {
           subloc_loca: {
                required: true
            },
       message: {
           subloc_loca: {
                required: "Select location"
            },
            }
}

如果隐藏字段正在获取其值,为什么错误标签不会消失。为什么会发生这种情况,我该如何实现。请帮我

标签: angularjsjquery-validateui-select

解决方案


通常,在图形元素替换默认值的这些情况下,您必须发挥创造力。在这种情况下input type="hidden",可能会替换select. 由于 jQuery Validate 不会在隐藏元素的值更改时自动触发,因此您必须自己以编程方式触发。

编写一个处理程序,强制验证包含您的值的隐藏元素。

$('#Your-Graphical-Select-Element').on('focusout', function() {
     $('[name="subloc_loca"]').valid();  // force validation test
});

推荐阅读