angularjs - Angular UI 日期选择器验证

标签 angularjs angular-ui-bootstrap angular-ui

In this plunk我有一个 Angular UI 日期选择器和一条仅在日期有效时才显示的消息。问题在于,即使 form.$valid 为 true,该消息也始终会显示。请注意,如果您输入有效或无效日期,然后单击验证,系统将正确显示相应日期有效或无效的警报。

为什么即使 form.$valid 为 true,验证消息仍然显示?

Javascript

var app = angular.module('ui.bootstrap.demo', ['ui.bootstrap']);

app.controller('ctl', function ($scope) {


    $scope.dtFrom = new Date ();

    $scope.config1 = {};
    $scope.config1.opened = false;
    $scope.open1 = function(event){
         event.preventDefault();
         event.stopPropagation();
         $scope.config1.opened = true;
    };

    $scope.validate = function(form){
        if (!form.$valid) {
           alert("Date invalid");
        }
        else {
           alert("Date valid");
        }
    }

});

HTML

<div ng-controller="ctl">
  <form name="form1" ng-submit="validate(form1)" novalidate>
      <p class="input-group" name="dtFrom" style="width:160px;margin-bottom:0px;">
          <input type="text" class="form-control" ng-model="dtFrom" 
               is-open="config1.opened"  uib-datepicker-popup="MM-dd-yyyy" 
               close-text="Close" />
           <span class="input-group-btn">
               <button type="button" class="btn btn-default" ng-click="open1($event)">
                  <i class="glyphicon glyphicon-calendar"></i>
               </button>
           </span>
      </p>
      <span ng-show="!form1.dtFrom.$valid">Invalid Date</span>
      <br/>
      <button type="submit">Validate</button>
  </form>
</div>

最佳答案

您应该为输入创建名称

 <input type="text" class="form-control" ng-model="dtFrom" 
                   is-open="config1.opened"  uib-datepicker-popup="MM-dd-yyyy" 
                   close-text="Close" name="date" />
      <span ng-show="!form1.date.$valid">Invalid Date</span>

这里是 plnkr

http://plnkr.co/edit/gc0Oefhok6Gjim66UG0K?p=preview

关于angularjs - Angular UI 日期选择器验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43713253/

相关文章:

jquery - Stripe 卡元素在表单上不可见

javascript - Angular 单元测试服务返回 Promise Jasmine

javascript - 如何将本地数组转换为远程 json 数据?

angularjs - 如果在 Angular.js 1.6.5 和 angular-ui-router 0.4.1.3 中单独保存在同一个文件中,回调函数是否会更改作用域?

angularjs - 将 $uibModalInstance 注入(inject)到不是由 $uibModal 发起的 Controller

javascript - 如何将弹出窗口定位在突出显示的文本部分上?

angularjs - Accordion 的表布局调整

javascript - 将数据从表单返回给 Controller

javascript - Angular UI-Router从子级更新父级范围

javascript - 在 Angular UI Bootstrap 日期选择器中附加工作日标签的点击事件