我有一个模态(nbr 1),我从另一个模态打开(nbr 2)。模态nbr 1工作正常,并显示它应该的东西。但我试图在模态中输入过滤项目,但输入不起作用。我无法在其中写任何内容,它只是不接受我的意见。
我认为这与我的第二个模式有关,因为当我从" root" (不是从另一个模态打开它),文本输入工作正常。
这是我的HTML:
<div class="modal-header">
<h3 class="modal-title">Pick a student</h3>
<div class="modal-body">
<!-- I can't type in this text field, no matter where it's placed och if it has any attributes at all -->
<input type="text" class="form-control" id="searchUsers" placeholder="Search by name, personal ID number or group" ng-model="search.$" ng-click="console.log('omg')">
<table class="table table-hover table-striped equi-table">
<tbody>
<tr ng-repeat="user in state.users | filter:search:strict">
<td>{{ user.firstName }}</td>
<td>{{ user.lastName }}</td>
<td>{{ user.personalIDNumber }}</td>
</tr>
</tbody>
</table>
</div>
以下是JavaScript:
这部分打开了模态nbr 2的模态:
$scope.addUserToCourse = function () {
utilities.pickAUserModal();
};
这是实际的模态
angular.module('equiclass.services')
.factory('utilities', function ($modal) {
var pickAUserModal = function () {
var modalInstance = $modal.open({
templateUrl: '/views/modals/pick-a-user-modal.html',
controller: function ($scope, $modalInstance, stateService, userService) {
var log = loggingService.getLogger ('pickAUserModal');
$scope.state = userService.state;
userService.initializeUsers().then(function () {
$scope.hasInitialized = true;
});
$scope.ok = function () {
$modalInstance.close(true);
};
$scope.cancel = function () {
$modalInstance.close(false);
};
}
});
};
return {
pickAUserModal: pickAUserModal
};
});
为什么我不能在文字输入中输入任何内容?我已经尝试过编辑z索引,并在那里放置不同类型的输入(复选框工作,textareas没有)。正如我之前所说的,模态是从另一个模态打开的,但模态数字2不是使用Angular UI Bootstrap创建的(我慢慢地逐步调整到角度UI)
答案 0 :(得分:2)
我在角度模式模式中遇到了同样的问题,我无法写入任何输入字段。几个小时后,我发现了什么是错的以及如何解决它。问题来自bootstrap-additions.min.css和类.modal.center .modal-dialog,其中position属性是固定的。我不知道为什么但是将所有输入字段分解为我的模态。当你对该属性使用绝对位置时,模态块可以正常工作。
.modal.center .modal-dialog{
position:absolute !important;
top:40%;left:50%;
min-width:320px;
max-width:630px;
width:50%;
-webkit-transform:translateX(-50%) translateY(-50%);
transform:translateX(-50%) translateY(-50%)
}
我希望这可以帮助您解决问题。
答案 1 :(得分:1)
我也遇到了同样的问题:
element.on('mousedown', function (event) {
// Prevent default dragging of selected content
event.preventDefault();
startX = event.screenX - x;
startY = event.screenY - y;
$document.on('mousemove', mousemove);
$document.on('mouseup', mouseup);
});
我通过删除event.preventDefault();
来修复它,将代码更改为:
element.on('mousedown', function (event) {
startX = event.screenX - x;
startY = event.screenY - y;
$document.on('mousemove', mousemove);
$document.on('mouseup', mouseup);
});
这允许点击到达字段。
答案 2 :(得分:0)
我知道这已经很晚了,但今天我遇到了同样的错误。修复它对我来说是删除角带提供的自定义引导程序CSS。我没有使用它,直到我添加日期选择器并且它没有正确的样式。
我刚刚使用了日期选择器CSS并修复了问题。我猜测它与自定义CSS中的模态样式有关。
希望这有助于某人。
答案 3 :(得分:0)
在实施其他人的ngDraggable指令后,我遇到了同样的问题。您作为模态的一部分使用的内容可能会执行类似的操作 - 它捕获单击事件并在事件上调用preventDefault(),这意味着光标实际上从未到达输入。我在下面的内容允许模态可以拖动,但阻止了来自任何到达表单字段的点击。
element.on('mousedown', function (event) {
// Prevent default dragging of selected content
event.preventDefault();
startX = event.screenX - x;
startY = event.screenY - y;
$document.on('mousemove', mousemove);
$document.on('mouseup', mouseup);
});