digiTALE
Lt. Junior Grade
- Registriert
- Juli 2004
- Beiträge
- 270
Guten Abend,
bei anklicken eines Input Feldes, soll ein DropDown Menü erscheinen das die Eingabe durch diversen Text-Vorlagen als Link beschleunigen soll.
Dennoch soll es dem User die Möglichkeit bieten, selber etwas hinein zu schreiben.
Wenn ich nur den Event-Handler "onClick" benutze, wird wie gewollt, ein DropDown Menü beim anklicken des Input Feldes angezeigt. Bei dieser Lösung muss der User entweder eine Textvorlage wählen oder nocheinmal auf das Input-Feld klicken damit es wieder verschwindet. Diese ist nicht gerade optimal.
Deswegen habe ich "onBlur" benutzt, damit das DropDownMenü automatisch nach verlassen des Input Feldes in ein nächstes schließt. Funktioniert auch.
Und hier kommt das Problem:
Ich kann die Links anklicken wie ich will, der Text im Input Feld ändert sich einfach nicht. Woran kann das liegen?
bei anklicken eines Input Feldes, soll ein DropDown Menü erscheinen das die Eingabe durch diversen Text-Vorlagen als Link beschleunigen soll.
Dennoch soll es dem User die Möglichkeit bieten, selber etwas hinein zu schreiben.
Wenn ich nur den Event-Handler "onClick" benutze, wird wie gewollt, ein DropDown Menü beim anklicken des Input Feldes angezeigt. Bei dieser Lösung muss der User entweder eine Textvorlage wählen oder nocheinmal auf das Input-Feld klicken damit es wieder verschwindet. Diese ist nicht gerade optimal.
Deswegen habe ich "onBlur" benutzt, damit das DropDownMenü automatisch nach verlassen des Input Feldes in ein nächstes schließt. Funktioniert auch.
Und hier kommt das Problem:
Ich kann die Links anklicken wie ich will, der Text im Input Feld ändert sich einfach nicht. Woran kann das liegen?
HTML:
<!DOCTYPE html>
<html lang="de">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<title>Testseite</title>
<script type="text/javascript">
function toggleFormDropDown(__ID)
{
var __INPUT = document.getElementById("DropDown-"+__ID);
return (__INPUT.style.display == "none") ? __INPUT.style.display = "block" : __INPUT.style.display = "none";
}
function WriteOptionIntoInput(__ID, __TEXT)
{
document.getElementById(__ID).value = __TEXT;
document.getElementById("DropDown-"+__ID).style.display = "none";
}
</script>
<style type="text/css">
* { font-family: Arial, Helvetica, sans-serif; padding: 0; margin: 0; }
body { padding: 25px; }
a.none { color: #444; text-decoration: none; }
a.none:hover { color: #000; text-decoration: underline; }
input[type=text] { border: 1px solid #CCC; font-size: small; padding: 5px 10px; }
.DropDown { position: absolute; display: block; z-index: 2; padding: 15px; background: #FFF; box-shadow: 0 0 3px #CCC; border: 1px solid #999; min-width: 125px; }
.DropDown p { font-size: small; color: #444; line-height: 1.6em; }
</style>
</head>
<body>
<form name="CreateForm" action="#" method="post">
<div>
<strong>Material: </strong>
<input type="text" name="mat" id="mat" value="Material 1" onClick="toggleFormDropDown('mat'); return false" onBlur="toggleFormDropDown('mat'); return false" />
<div id="DropDown-mat" class="DropDown" style="display:none">
<p>
• <a href="" onClick="WriteOptionIntoInput('mat', 'Material 1'); return false" class="none">Material 1</a><br />
• <a href="" onClick="WriteOptionIntoInput('mat', 'Material 2'); return false" class="none">Material 2</a><br />
• <a href="" onClick="WriteOptionIntoInput('mat', 'Material 3'); return false" class="none">Material 3</a><br />
• <a href="" onClick="WriteOptionIntoInput('mat', 'Material 4'); return false" class="none">Material 4</a>
</p>
</div>
</div>
</form>
</body>
</html>