【问题标题】:ui-select validate with hidden field and angular-validate plugin带有隐藏字段和角度验证插件的 ui-select 验证
【发布时间】:2018-06-17 00:20:20
【问题描述】:

好吧,我的表单中有一个隐藏字段,并试图验证 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"
            },
            }
}

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

【问题讨论】:

  • 你能把你的源代码做成一个可运行的代码sn-p吗?这样可以更快地调试和帮助您。
  • 是的。会更新你
  • Angular Validation 与您已标记的 jQuery Validate 不同。你真正使用的是哪一个?
  • 因为这是一个依赖于另一个验证插件的验证插件(Angular Validate 需要 jQuery Validate),所以在你的 OP 中解释所有这些可能是个好主意。 jQuery Validate 非常流行,而 Angular Validate 插件非常过时,相比之下相对晦涩。

标签: angularjs jquery-validate ui-select


【解决方案1】:

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

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

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

【讨论】:

  • 我担心@Sparky 先生,这个ui-select 没有任何id 属性。但它有一个像on-select 这样的ng-change,它可以调用一个函数。那么,是否有可能做这样的事情。 $scope.seeme=function() { $('[name="subloc_loca"]').valid(); }
  • @Sparky。只需对代码进行少量操作,它就可以工作。谢谢楼主
  • @Steve,这就是目的。由于我无法查看您的 DOM 并且您没有发布任何呈现的 HTML 标记,因此 $('#Your-Graphical-Select-Element') 应该被替换为适当的选择器,无论是什么。
  • @georgeawg,我回答中的隐藏字段和解决方法与 AngularJS 没有什么特别的关系。这与 Bootstrap 和任何其他图形元素替换发生的情况相同,因此在这些情况下,jQuery Validate 也需要类似的解决方法。至于讨论为什么 OP 想要这个或者它是否“比它的价值更多的麻烦” 是 SO cmets 真正偏离主题的事情。
猜你喜欢
  • 2012-12-06
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多