Inputfeld teilweise "readonly"

hallo zusammen.

ich möchte mit js einen teil eines input textfeldes nicht editierbar machen.
dh in dem feld steht der username drinen und dahinter kann er was schreiben, aber den usernamen soll er nicht rauslöschen können.

weiß jemand wie das gehen würde?

lg julian

de.selfhtml.org/navigation/suche … e=readonly

<p>irgendwas<input type="text" name=iwas" /></p>

so? :ps:

ne eher so:

und die schon vorher definierte value mit dem usernamen soll man nich löschen können, dahinter aber was schreiben können…

Das wird so nicht funktionieren, ist ja auch nicht vorgesehen.

Kannst maximal mittels JS beim verlassen des Feldes den Wert überprüfen und ggf. ändern.
Oder nach dem Absenden mit PHP prüfen und falls notwendig ändern.

Die PHP-Variante ist dabei zu bevorzugen, da sie nicht vom User beeinflusst werden kann.
Eine Kombination beider Varianten zwecks optischem Eindruck ist natürlich auch nicht schlecht.

Kannst natürlich auch noch 2 Textfelder so formatieren und positionieren, dass sie wie eines aussehen. Das eine readonly, das zweite ganz normal.

Wobei natürlich zu beachten ist, dass das readonly meist vom Browser automatisch grau/braun hinterlegt wird…

Man könnte die Darstellung natürlich noch über CSS beeinflussen (Nicht in allen Browsern, der IE verweigert nämlich in älteren Versionen die Attributselektoren).

input[readonly]{ background-color:#FFFFFF; color:#000000; }
Aber wenn man solche Kunstgriffe unbedingt braucht, dann muss man eben mit div. Unzulänglichkeiten rechen und diese akzeptieren.

@ julian, wofür braust du das eigentlich? vllcht gibt es noch eine andere methode…

naja es ist eben ein feld wo der user reinschreiben kann was er gerade macht.
dh zuerst steht im feld “was machst du gerade?” und wenn der user reinklickt änderts sich in "{username} "

dann kann der user schreiben, was er gerade macht. damit das ganze etwas einheitlicher wird soll er den usernamen nicht rauslöschen können. außerdem wird er dann quasi beieinflusst wirklich zu schreiben was er gerade macht und zb nicht schreibt “das wetter ist schön”

ungefähr verstanden? :wink:

lg julian

Der Name kann doch auch dekoriert neben der Eingabe stehen.
Wenn man den wirklich mit dem Formular mitsenden will, kann
man ihn ja auch mit ‘hidden’ zusätzlich in ein input stecken.

Ist jedenfalls unklar, weshalb etwas in einem veränderbaren
Eingabefeld stehen soll, was nicht verändert werden soll.
Zudem, wenn es mit einem Formular verschickt wird, ist das
manipulierbar, wenn es nicht unabhängig davon dem Namen
zugeordnet werden kann - etwa über eine Sitzung.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
	<title>unbenannt</title>
	<meta http-equiv="content-type" content="text/html;charset=utf-8" />
	<meta name="generator" content="Geany 0.14" />
</head>

<body>
	<form>
		<input type="text" readonly="1" value="Michi" style="background-color: white; color: #8E8E8E; width 50px; margin: 0; border-right: 0"/><input type="text" value="tut gerade nichts" style="background-color: white; color: #222; margin: 0; border-left: 0"/>
	</form>
</body>
</html>

so sieht das doch gar nicht so schlimm aus :smiley: