Ich möchte eine hinzufügen, die auch mit dynamischer Javascript-DOM-Erstellung wie D3 funktioniert, wo es unmöglich ist, Folgendes hinzuzufügen:
Um Aktionen für ein HTML-Eingabe-DOM-Element zu verhindern, fügen Sie schreibgeschützt zur Klasse hinzu:
var d = document.getElementById("div1");
d.className += " readonly";
ODER in D3:
.classed("readonly", function(){
if(condition){return true}else{return false}
})
UND zu CSS oder weniger hinzufügen:
.readonly {
pointer-events: none;
}
Das Schöne an dieser Lösung ist, dass Sie sie dynamisch ein- und ausschalten können, damit sie zum Zeitpunkt der Erstellung in beispielsweise D3 integriert werden kann (mit dem einzelnen Attribut "readonly" nicht möglich).
So entfernen Sie das Element aus der Klasse:
document.getElementById("MyID").className =
document.getElementById("MyID").className.replace(/\breadonly\b/,'');
oder benutze Jquery:
$( "div" ).removeClass( "readonly" )
oder schalten Sie die Klasse um:
$( "div" ).toggleClass( "readonly", addOrRemove );
Nur um vollständig zu sein, viel Glück = ^)
keydown()oderkeypress()effektiver?