Ich versuche, den partiellen Text in Eingabe als schreibgeschützt zu machen, um zu erreichen, dass ich diesen Code gefunden habe, aber es funktioniert nicht in FIrefox, funktioniert gut in Chrom.event.preventdefault funktioniert nicht in Firefox
Gefunden, dass event.preventDefault das Problem verursacht. Versuchte Rückkehr falsch, das funktioniert auch nicht.
Angular JS Richtlinie Code
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-Code
<input type="text" ng-init="load()" ng-model="key" partial-readonly="{{number}}" />
Es ist ein langer Schuss - Versuchen Sie, die Warnung mit den prevent –
Schalen nicht wachsam zu debuggen verwenden ... – epascarello
Es könnte sein, dass das Problem nicht auf prevent ist. Es könnte auf "event.which" sein. Siehe hierzu [link] (http://stackoverflow.com/questions/18177818/why-jquerys-event-which-gives-difference-results-in-firefox-and-chrome) –