Ich verwende einen <input readonly="readonly">
, der wie normaler Text gestaltet ist, um das Erscheinungsbild eines interaktiven Felds zu entfernen, aber den Wert immer noch anzuzeigen.
Dies ist sehr nützlich, um zu verhindern, dass ein Benutzer ein Feld bearbeitet, und gleichzeitig den Wert buchen kann. Mir ist klar, dass dies eine bequeme Methode ist und dass es mehrere Problemumgehungen gibt, aber ich möchte diese Methode verwenden.
Problem: Die blinkende Einfügemarke wird weiterhin angezeigt, wenn das Feld angeklickt/fokussiert wird. (Zumindest in FF und IE8 unter Win7)
Im Idealfall möchte ich, dass es sich wie gewohnt fokussiert verhält, aber ohne blinkende Einfügemarke.
Javascript-Lösungen sind willkommen.
Bei mir gibt es kein Caret oder so:
<input type="text" value="test" readonly="readonly" >
Schauen Sie sich das an: http://www.cs.tut.fi/~jkorpela/forms/readonly.html
Entschuldigung, jetzt verstehe ich dein Problem.
Versuche dies:
<input type="text" value="test" onfocus="this.blur()" readonly="readonly" >
Sie können dies in Ihrer CSS verwenden, aber es wird nicht fokussiert:
[readonly='readonly'] {
pointer-events: none;
}
Sie können das Blinkzeichen entfernen, indem Sie das Attribut css in transparent angeben
caret-color: transparent;
sie können das Ergebnis testen hier
Es kann mit HTML und Javascript gemacht werden
<input type="text" onfocus="this.blur()" readonly >
oder jQuery
$(document).on('focus', 'input[readonly]', function () {
this.blur();
});
der einzige Weg, den ich dafür fand, war
//FIREFOX
$('INPUT_SELECTOR').focus(function () {
$(this).blur();
});
//INTERNET Explorer
$('INPUT_SELECTOR').attr('unselectable', 'on');
KENDO
$('.k-ff .k-combobox>span>.k-input').focus(function () {
$(this).blur();
});
$('.k-ie .k-combobox>span>.k-input').attr('unselectable', 'on');
Die onfocus/blur-Methode funktioniert zwar, um den Cursor aus einem schreibgeschützten Feld zu entfernen, der Browser stellt jedoch nicht automatisch das nächste Feld scharf, und Sie verlieren möglicherweise den Fokus ganz, was der Benutzer normalerweise nicht erwartet. Wenn dies erforderlich ist, können Sie einfaches Javascript verwenden, um sich auf das nächste Feld zu konzentrieren, das Sie möchten. Sie müssen jedoch das nächste Feld angeben:
<input type="text" name="readonly-field" value="read-only"
readonly onfocus="this.form.NextField.focus()">
Dabei ist "NextField" der Name des Feldes, das aufgerufen werden soll. (Alternativ können Sie andere Möglichkeiten angeben, um das nächste Feld zu suchen.) Offensichtlich ist dies umso schwieriger, wenn Sie zu einem nicht sichtbaren Oberflächenelement wie einem Tab-Panel navigieren möchten, da Sie dies ebenfalls anordnen müssen.
Einfach!
Fügen Sie einfach disabled
zur Eingabe hinzu und es kann nicht angeklickt werden (fokussiert)