在ionic serve
中运行正常。
在设备上运行时,在页面加载后以及键入或刚刚选择文本框之后。然后,当您选择"选择(下拉菜单)"时,下拉选项会闪烁,然后它不接受任何输入(只是在没有选择的情况下关闭),但是如果再次尝试则可以。
据我所知,这是由ng-untouched
替换为ng-touched
<ion-list>
<ion-item class="item-divider">
<b class="">New member's details</b>
</ion-item>
<ion-item class="item-input">
<label class="input-label" for="firstName">First name</label>
<input type="text" ng-model="memberDetails.firstName" name="firstName" id="firstName" ng-class="{'input-validation-error' : applicationForm.firstName.$error.required && (applicationForm.firstName.$touched || showRequired)}" required />
</ion-item>
<ion-item class="item-input">
<label class="input-label" for="surname">Surname</label>
<input type="text" ng-model="memberDetails.surname" name="surname" id="surname" ng-class="{'input-validation-error' : applicationForm.surname.$error.required && (applicationForm.surname.$touched || showRequired)}" required />
</ion-item>
<ion-item class="item-input">
<label class="input-label" for="initials">Initials</label>
<input type="text" ng-model="memberDetails.initials" name="initials" id="initials" ng-class="{'input-validation-error' : applicationForm.initials.$error.required && (applicationForm.initials.$touched || showRequired)}" required />
</ion-item>
<ion-item class="item-input item-select">
<label class="input-label" for="title">Title</label>
<select ng-model="memberDetails.titleId" ng-options="lookup.id as lookup.description for lookup in titleLookup" name="title" id="title" ng-class="{'input-validation-error' : applicationForm.title.$error.required && (applicationForm.title.$touched || showRequired)}" required></select>
</ion-item>
</ion-list>
是否有任何解决方法或解决此问题?
修改
问题似乎与android上的angularjs有关,问题似乎出现在一个来自android chrome浏览器的angularjs网站上。
答案 0 :(得分:1)
我找到了一个基于this stackoverflow post
的解决方法只需将此指令添加到您的应用中:
.directive('input', function () {
return {
restrict: 'E',
require: '?ngModel',
link: function (scope, element, attr, modelCtrl) {
if (attr.type === "text" && attr.name && modelCtrl) {
element.on('focus', function () {
modelCtrl.$setTouched();
scope.$apply();
});
}
}
};
});
注意:仅在某些设备上的所有设备上都不会出现此问题,(尚未找到问题的根源)