重叠的日期框
Overlapping Date Boxes
我正在尝试在屏幕上显示多个日期。目前,当用户点击一个日期按钮时,它会打开一个日期选择器。如果用户点击开箱即用,日期选择器将关闭,因为它通常应该做出反应。但是如果用户点击另一个日期选择器按钮,日期选择器不会关闭,而是会打开另一个日期选择器 window 并重叠它。 [我尝试上传图片]
我为此使用 Angular-UI。 http://angular-ui.github.io/bootstrap/
我相信这是一个错误?当点击不同的按钮时,是否有快速破解来禁用第一个框?
谢谢!
编辑:
正在使用的代码在这里:
<div class="row">
<p class="input-group">
<input type="text" class="form-control dateTextField" datepicker-popup="{{format}}" ng-model="search.minOrderTime" is-open="minordertime" datepicker-options="dateOptions" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default dateButton" ng-click="openDate($event,'minordertime')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<b>Max Order Time:</b>
<div class="row">
<p class="input-group">
<input type="text" class="form-control dateTextField" datepicker-popup="{{format}}" ng-model="search.maxOrderTime" is-open="maxordertime" datepicker-options="dateOptions" min-date="minDate" date-disabled="disabled(date, mode)" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default dateButton" ng-click="openDate($event, 'maxordertime')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<b>min Last Modified:</b>
<div class="row">
<p class="input-group">
<input type="text" class="form-control dateTextField" datepicker-popup="{{format}}" ng-model="search.minLastModified" is-open="minlastmodified" datepicker-options="dateOptions" min-date="minDate" date-disabled="disabled(date, mode)" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default dateButton" ng-click="openDate($event, 'minlastmodified')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<b>Max Last Modified:</b>
<div class="row">
<p class="input-group">
<input type="text" class="form-control dateTextField" datepicker-popup="{{format}}" ng-model="search.maxLastModified" is-open="maxlastmodified" min-date="minDate" max-date="'2015-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default dateButton" ng-click="openDate($event,'maxlastmodified')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<b>Order Date:</b>
<div class="row">
<p class="input-group">
<input type="text" class="form-control dateTextField" datepicker-popup="{{format}}" ng-model="search.orderDate" is-open="orderdate" min-date="minDate" max-date="'2015-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default dateButton" ng-click="openDate($event,'orderdate')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
Javascript:
$scope.openDate = function ($event, opened) {
$event.preventDefault();
$event.stopPropagation();
$scope[opened] = true;
};
使用一个对象来存储当前打开的日期选择器而不是直接在 $scope
上。这样,当您打开一个新的选择器时,您可以通过编写 $scope.openPicker = {}
并分配新打开的选择器 $scope.openPicker[opened]
来轻松清除它们
请记住更改您的 is-open
以包含对象:is-open="openPicker.yourPicker"
我正在尝试在屏幕上显示多个日期。目前,当用户点击一个日期按钮时,它会打开一个日期选择器。如果用户点击开箱即用,日期选择器将关闭,因为它通常应该做出反应。但是如果用户点击另一个日期选择器按钮,日期选择器不会关闭,而是会打开另一个日期选择器 window 并重叠它。 [我尝试上传图片]
我为此使用 Angular-UI。 http://angular-ui.github.io/bootstrap/ 我相信这是一个错误?当点击不同的按钮时,是否有快速破解来禁用第一个框?
谢谢!
编辑: 正在使用的代码在这里:
<div class="row">
<p class="input-group">
<input type="text" class="form-control dateTextField" datepicker-popup="{{format}}" ng-model="search.minOrderTime" is-open="minordertime" datepicker-options="dateOptions" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default dateButton" ng-click="openDate($event,'minordertime')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<b>Max Order Time:</b>
<div class="row">
<p class="input-group">
<input type="text" class="form-control dateTextField" datepicker-popup="{{format}}" ng-model="search.maxOrderTime" is-open="maxordertime" datepicker-options="dateOptions" min-date="minDate" date-disabled="disabled(date, mode)" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default dateButton" ng-click="openDate($event, 'maxordertime')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<b>min Last Modified:</b>
<div class="row">
<p class="input-group">
<input type="text" class="form-control dateTextField" datepicker-popup="{{format}}" ng-model="search.minLastModified" is-open="minlastmodified" datepicker-options="dateOptions" min-date="minDate" date-disabled="disabled(date, mode)" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default dateButton" ng-click="openDate($event, 'minlastmodified')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<b>Max Last Modified:</b>
<div class="row">
<p class="input-group">
<input type="text" class="form-control dateTextField" datepicker-popup="{{format}}" ng-model="search.maxLastModified" is-open="maxlastmodified" min-date="minDate" max-date="'2015-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default dateButton" ng-click="openDate($event,'maxlastmodified')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<b>Order Date:</b>
<div class="row">
<p class="input-group">
<input type="text" class="form-control dateTextField" datepicker-popup="{{format}}" ng-model="search.orderDate" is-open="orderdate" min-date="minDate" max-date="'2015-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default dateButton" ng-click="openDate($event,'orderdate')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
Javascript:
$scope.openDate = function ($event, opened) {
$event.preventDefault();
$event.stopPropagation();
$scope[opened] = true;
};
使用一个对象来存储当前打开的日期选择器而不是直接在 $scope
上。这样,当您打开一个新的选择器时,您可以通过编写 $scope.openPicker = {}
并分配新打开的选择器 $scope.openPicker[opened]
请记住更改您的 is-open
以包含对象:is-open="openPicker.yourPicker"