gpt4 book ai didi

javascript - Angular 中关于 IE 问题的占位符

转载 作者:行者123 更新时间:2023-12-02 15:18:41 26 4
gpt4 key购买 nike

我有一个自定义输入指令,它将每个新元素作为标签添加到先前输入的项目列表中。我的代码在所有浏览器(Chrome、Safari、Firefox、Edge)中都能正常工作,我的问题是 IE11 及更低版本。一旦选择了输入字段,我似乎无法清除占位符文本。

我不太确定该怎么做..或者如何修改使其在 IE 中也能表现良好。

main.html

<tagged disabled="{{ canNotEdit }" property="newProfile.educationSubjects" placeholder="{{ 'newVacancy.educationFieldsPlaceholder' | translate }}">
</tagged>

标记.html

<div ng-class="{'element-disabled': disabled }" class="position-relative">
<div class="position-relative">
<input type="text"
ng-disabled="{{ disabled }}"
class="inpt"
placeholder="{{ placeholder }}">
<span class="caret">
<svg class="caret-icon">
<use xlink:href="images/svg-generated/svg/symbols.svg#add-s">
</use>
</svg>
</span>

<div>
<div class="taglist list-inline">
<ul>
<li class="tag"
ng-click="removeItem($index)"
ng-repeat="item in dataArray track by $index">
{{ item }}
<svg class="tag-close">
<use xlink:href="images/svg-generated/svg/symbols.svg#remove"></use>
</svg>
</li>
</ul>
</div>
</div>
</div>
</div>

和我的指令 Controller :

标记-dir.js

'use strict';

export default function() {
return {

restrict: 'E',

scope: {
dataArray: '=property',
disabled: '@',
placeholder: '@'
},

templateUrl: '..path-to/tagged.html',

link: function(scope, element) {

var input = angular.element(element.find('input')[0]);
var button = angular.element(element.find('span')[0]);

scope.removeItem = function(index) {
if(scope.disabled === 'true') {
return false;
}
scope.dataArray.splice(index, 1);
};

function addTag() {

let val = input.val().replace(/\/|\\/g, '');

if(!val) {
return;
}

scope.dataArray.push(val);
scope.$digest();

input.val('');
}

input.bind('keydown keypress', function(event) {
if(event.which === 13 && scope.disabled !== 'true') {
event.preventDefault();
addTag();
}
});

input.bind('mouseenter', function() {
if(scope.disabled === 'true') {
return false;
}
element.addClass('taglist-hovered');
});

input.bind('mouseleave', function() {
if(scope.disabled === 'true') {
return false;
}
element.removeClass('taglist-hovered');
});

input.bind('focus', function() {
if(scope.disabled === 'true') {
return false;
}
element.addClass('taglist-focused');
});

input.bind('blur', function() {
if(scope.disabled === 'true') {
return false;
}
element.removeClass('taglist-focused');
});

button.on('click', function(event) {
if(scope.disabled === 'true') {
return false;
}
addTag();
});

}
};
};

最佳答案

所以我发现问题出在 disabled <tagged> 上的元素指令。

IE 解释 disabled属性(对他来说未知)tagged元素并禁用所有子元素(包括输入字段)。

所以我所做的实际上被重命名为 disabled元素与自定义元素,并在我需要的地方将其替换为新元素。

关于javascript - Angular 中关于 IE 问题的占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34256585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com