【问题标题】:form.$valid is working for "required" but it's not working for ngPattern and maxlength.form.$valid 适用于“必需”,但不适用于 ngPattern 和 maxlength。
【发布时间】:2017-03-31 16:15:44
【问题描述】:

如果邮政编码为空,则表单无效,因此按钮被禁用,但如果邮政编码为 2 位,则会显示错误消息,但表单在控制器中显示为有效。如果邮政编码为空,那么我需要禁用按钮,但我正在检查表单是否有效,但不要担心 ng-disabled。当且仅当表单有效时,我才需要显示“div”的解决方案。

 function submitUserDetail (formValid) {
      if(formValid) {
      $scope.showDiv = true;
      }
    }
            <div class="">
                <div class="">
                    <label required>
                        Zip code required
                    </label>
                    <label pattern>
                        Invalid Zip code
                    </label>
                </div>
                <div class="">
                    <input type="tel" maxlength="5" class="" name="zip5"
                           ng-model="userDetail.zipCode" required=""
                           pattern="^\d{5}$"
                           data-validate-on-blur="true" value=""
                           size="5">
                    <span class="" title="Reset" onclick="jQuery(this).prev('input').val('').trigger('change');"></span>
                </div>
            </div>        
        
        
        <div class="">
            <div class="">
                <div class="">
                    <span class=""></span>
                    <button class="" href="#" id="button" ng-click="submitUserDetail(form.$valid)" ng-disabled="form.$invalid">See section</button>
                    <span class=""></span>
                </div>
            </div>
        </div>
        
        <div ng-if="showDiv">
        .......
        </div>

提前致谢。

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    我假设您有一个 &lt;form&gt; 包装所提供的 HTML。

    如果是这样,您应该确保您的 &lt;form> 标签已应用 novalidate,以便您使用 AngularJS 表单验证而不是 HTML5 表单验证:

     <form name="form" ng-submit="submitUserDetail(form.$valid)" novalidate>
    

    此外,您似乎将 HTML5 验证属性与 AngularJS 验证属性混合在一起。您应该使用ng-requiredng-pattern 而不是requiredpattern

    【讨论】:

    • @sanju 确保您使用的是 AngularJS 验证指令
    • 是的,我正在使用 ang 指令。我可以看到错误消息,因此正在进行验证
    猜你喜欢
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 2015-01-24
    • 1970-01-01
    相关资源
    最近更新 更多