Jörg wrote:
^^^^ bitte reparieren, Jörg Nr. 47110815!
[Autofill für Textfelder]
Quote:
Frage: Kann man mit Java-Script diese Liste auch für
Benutzer, die noch nie Werte in dieses Feld eingegeben haben, mit
Werten füllen? |
Siehe Antwort von Steffen.
Quote:
oder gibt es vielleicht eine andere Möglichkeit: z.B.
ein <Select> Feld umzustricken, daß man Text eingeben kann? |
Nein, das Verhalten von Formularelementen ist im Wesentlichen
nicht skriptbar. Auch das Positionieren von verschiedenen
Elementen "übereinander" funktioniert in fast allen Brausern
nicht wirklich.
Ein Ausweg: Ein Textfeld und ein Selectelement nebeneinander,
per JS ein wenig Komfort zur Verfügung stellen (s.u.) und
dann auf dem Server beide gemeinsam auswerten.
Ein Ansatz aus der Grabbelkiste:
<script type="text/javascript" language="JavaScript">
function combiBlurText(te, se) {
if (te.value == "") te.value = te.defaultValue;
else {
var n = true;
for (var i=0; i<se.options.length; i++)
if (se.options[i].text == te.value) {
n = false;
break;
}
if (n) se.options[se.options.length] =
new Option(te.value, te.value);
}
}
function combiFocusText(te, se) {
if (te.value == te.defaultValue) te.value = "";
te.select();
se.selectedIndex = 0;
}
function combiChangeSelect(te, se) {
if (se.selectedIndex != 0) {
te.value = se.options[se.selectedIndex].text;
}
}
function combiBlurSelect(te, se) {
se.selectedIndex = 0;
}
</script>
....
<form>
<input type="text" name="i1txt"
value="Text eingeben"
onblur="combiBlurText(this, this.form.i1sel)"
onfocus="combiFocusText(this, this.form.i1sel)"
onchange="combiChangeSelect(this.form.i1txt, this)"
onblur="combiBlurSelect(this.form.i1txt, this)"
Quote:
|
option value="">Text auswählen</option
|
<option value="foo">foo</option>
<option value="bar">bar</option>
</select>
</form>
ciao, dhgm