我正在尝试将输入文件中的部分文本设置为只读,以实现我找到此代码但它在FIrefox中不起作用,在chrome中工作正常。
发现event.preventDefault导致了问题。 尝试返回false,这也是行不通的。
Angular JS指令代码
app.directive('partialReadonly', function () {
return {
restrict: 'A',
link: function ($scope, $element, attrs) {
$element.on('keypress, keydown', function (event) {
var readOnlyLength = attrs["partialReadonly"].length;
if ((event.which != 37 && (event.which != 39))
&& (($element[0].selectionStart < readOnlyLength)
|| (($element[0].selectionStart == readOnlyLength) && (event.which == 8)))) {
alert('preventdef');
//return false;
event.preventDefault();
}
});
$scope.load = function () {
alert('load called attrs["partialReadonly"] ' + attrs["partialReadonly"]);
$scope.temp = attrs["partialReadonly"];
// $element[0].value = attrs["partialReadonly"];
};
}
};
});
Html代码
<input type="text" ng-init="load()" ng-model="key" partial-readonly="{{number}}" />
答案 0 :(得分:1)
由于@epascarello和@Alon不使用alert进行调试而是使用控制台日志,因此从脚本中删除警报可能有所帮助。
希望我帮助