代码之家  ›  专栏  ›  技术社区  ›  Steve

用户界面选择验证隐藏字段和角度验证插件

  •  0
  • Steve  · 技术社区  · 6 年前

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

    如果hiddden字段正在获取其值,那么为什么错误标签不会消失。为什么会发生这种情况,我如何才能做到这一点。请帮帮我

    1 回复  |  直到 6 年前
        1
  •  1
  •   Sparky    6 年前

    通常,在图形元素替换默认元素的情况下,您必须获得创造性。在这种情况下 input type="hidden" 这大概代替了 select .由于jquery validate不会在隐藏元素的值更改时自动触发,因此您必须自己以编程方式触发它。

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

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