【问题标题】:How to validate dates in datepicker with xeditable+angularjs?如何使用 xeditable+angularjs 在 datepicker 中验证日期?
【发布时间】:2015-06-16 06:17:23
【问题描述】:

我有两个日期开始日期和结束日期。一旦我选择开始日期,那么结束日期不应小于开始日期。意味着应禁用这些日期以单击结束日期选择器中小于开始日期的日期。

HTML

<div class="col-sm-8">
                      <p class="form-control-static">
                        <span editable-bsdate="data.season_start" e-ng-click="openPicker()"  e-is-open="picker.opened" e-datepicker-popup="dd-MMMM-yyyy">{{ (data.season_start | date:"dd/MM/yyyy") || 'empty' }}</span>
                      </p>
 </div>

<div class="col-sm-8">
                      <p class="form-control-static">
                        <span editable-bsdate="data.season_end" e-ng-click="openPicker2()"  e-is-open="picker2.opened" e-datepicker-popup="dd-MMMM-yyyy">{{ (data.season_end | date:"dd/MM/yyyy") || 'empty' }}</span>
                      </p>
 </div>

角度:

 $scope.picker = {opened: false};
 $scope.openPicker = function (data) {
                    $scope.picker.opened = true;
             });
  };
    $scope.picker2 = {opened: false};
    $scope.openPicker2 = function (data) {
                    $scope.picker.opened = true;
                });
        };

我的日期选择器工作正常。但我想根据 season_start.thanks 在 season_end datepicker 中进行验证

【问题讨论】:

  • 您在使用任何库吗?还是您制作了自己的自定义日期选择器?你用的是 'ui-bootstrap' 提供的那个吗?
  • 不,我用过angular-ui.github.io/bootstrap datepicker
  • 使用 min-date 属性....选择第一个日期后,更新 minDate 变量

标签: angularjs datepicker angular-ui-bootstrap


【解决方案1】:

正如 akashrajkn 在上面的 cmets 中所写,您可以简单地将 min-date 与范围变量一起使用 这是一个关于如何使用最小和最大日期的示例。plunker

取自AngularUI Datepicker dynamic date disabling

 <h4>Start</h4>
<div class="form-horizontal">
    <p>
        <input type="text" datepicker-popup="{{format}}" ng-model="start" is-open="startOpened" min="minStartDate" max="maxStartDate" datepicker-options="dateOptions" close-text="Close" />
        <button class="btn" ng-click="openStart()"><i class="icon-calendar"></i></button>
    </p>
</div>
<h4>End</h4>
<div class="form-horizontal">
    <p>
        <input type="text" datepicker-popup="{{format}}" ng-model="end" is-open="endOpened" min="minEndDate" max="maxEndDate" datepicker-options="dateOptions" close-text="Close" />
        <button class="btn" ng-click="openEnd()"><i class="icon-calendar"></i></button>
    </p>
</div>

在控制器中做你需要的。

【讨论】:

  • $watch 也不能在可编辑中工作,因为它的型号名称会在编辑时改变
  • 我认为您必须使用 xeditable 吗?所以提供一个 jsfiddle 或 plunker,我们可以尝试提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多