auswahlliste oder textfeld
trude
- javascript
Hallo
ich hätt da mal ne Frage
ich habe ein perl script, in dem eine webseite erzeugt wird, nun hab ich eine Auswahlliste zum suchen von Tabelleneinträgen.
Jetzt möcht ich aber gern eine Möglichkeit zum auswählen ob ich eine AUswahlliste oder ein Textfeld angezeigt bekomme zum suchen ohne das perlscript selbst neu aufzurufen. Wär sowas mit javascript möglich ? wenn ja, kann mir da jemand bitte helfen ?
Hi,
ich habe ein perl script, in dem eine webseite erzeugt wird, nun hab ich eine Auswahlliste zum suchen von Tabelleneinträgen.
Was verstehst du unter Auswahlliste? Ein input-Element mit type="select"?
Jetzt möcht ich aber gern eine Möglichkeit zum auswählen ob ich eine AUswahlliste oder ein Textfeld angezeigt bekomme zum suchen ohne das perlscript selbst neu aufzurufen.
Wenn ich dich richtig verstehe willst du auswählen (z.B. mit einem Radio-Button) ob ein Textfeld oder ein Dropdown (input type=select) anzeigt werden soll.
Eine Möglichkeit dafür wäre beide Elemente in den Html-Code zu schreiben und dann je nach Auswahl des Users die display-Eigenschaft der Elemente entsprechend zu setzen. Zum Ausblenden musst du sie auf "none" setzen.
Wär sowas mit javascript möglich ? wenn ja, kann mir da jemand bitte helfen ?
Wenn ich dich falsch verstanden habe oder du nicht verstehst was ich meine kannst du ja nochmal nachfragen und vielleicht deine Fragestellung etwas ausführlicher formulieren.
mfG,
steckl
Hi steckl
du hast es absolut richtig erfasst was ich machen möchte.
leider bin ich n nixblicker was jaascript angeht und eigentlich auch was den rest angeht :-)
kannst du mir da bitte n schnipsel quellcode zusammenschreibseln ?
Hi,
leider bin ich n nixblicker was jaascript angeht und eigentlich auch was den rest angeht :-)
Das könntest du ja ändern, indem du versuchst das ganze selbst umzusetzen.
kannst du mir da bitte n schnipsel quellcode zusammenschreibseln ?
Nein, da das der Philosophie dieses Forums wiedersprechen würde. Es heißt nicht umsonst SELFhtml.
Aber ich kann dir erklären, wie du dein Problem selbst lösen kannst:
Zuerst musst du sowohl das Textfeld als auch das Dropdown-Menü in den Html-Code schreiben. Um die beiden Elemente später ansprechen zu können gibst du ihnen am besten eine ID.
Bei einem setzt du display:none im CSS, damit es nicht angezeigt wird.
Dann musst du dem radio-Button einen Event-Handler verpassen. Ich denke onchange (evtl. auch onclick) wäre gut geeignet. Hier rufst du eine Funktion auf, die dann die Display-Eigenschaft der beiden Elemente verändert.
Ich habe noch ein einfaches Beispiel gefunden, wo du siehst was du machen kannst.
Dabei ist noch anzumerken, dass es keinen Unterschied macht, ob du ein Div- oder ein Input-Element aus/einblenden willst.
Wenn du es versucht hast und nicht mehr weiter weißt werde ich dir gern nochmal helfen.
mfG,
steckl
Hi,
zu deinem Versuch (aus dem Doppelposting):
in dem Javascript-Code sind Syntax-Fehler. Die Fehlerkonsole deines Browsers (beim Firefox unter Extras -> Fehler-Konsole) müsste sie dir eigentlich anzeigen. Du hast am Anfang eine gschweifte Klammer-zu drin, die nirgends aufgemacht wird. Ausserdem fehlen Strichpunkte.
Ausserdem glaube ich, dass die Abfrage
e.style.display=='none'
so nicht funktioniert, wenn du die display-Eigenschaft vorher nicht mit JS gesetzt hast. Aber das kannst du ausprobiern mit einem
alert(e.style.display)
dann siehst du ob in display was drinsteht.
Das Aus/Einblenden der beiden Elemente kannst du in einer Funktion erledigen. Du kannst gleichzeitig ein Element ausblenden und das andere einblenden. Dann kannst du auf das "unschöne" onmouseup verzichten.
Und in Perl gibt es here-doc, damit kannst du dir die Notation von Backslashs vor den doppelten Anführungszeichen sparen.
mfG,
steckl
Hi,
Ausserdem glaube ich, dass die Abfrage
e.style.display=='none'
so nicht funktioniert, wenn du die display-Eigenschaft vorher nicht mit JS gesetzt hast. Aber das kannst du ausprobiern mit einem
alert(e.style.display)
dann siehst du ob in display was drinsteht.
das eine (setzen der Eigenschaft) hat mit dem anderen (auslesen - hier hast Du recht) nichts zu tun.
freundliche Grüße
Ingo
Hi,
Ausserdem glaube ich, dass die Abfrage
e.style.display=='none'
so nicht funktioniert, wenn du die display-Eigenschaft vorher nicht mit JS gesetzt hast. Aber das kannst du ausprobiern mit einem
alert(e.style.display)
dann siehst du ob in display was drinsteht.
das eine (setzen der Eigenschaft) hat mit dem anderen (auslesen - hier hast Du recht) nichts zu tun.
Sorry, aber ich verstehe nicht worauf du hinaus willst. Ist irgendwas an meiner Aussage falsch?
Wenn man die Eigenschaft nicht zuerst mit JS gesetzt hat kann man sie so wie oben nicht abfragen. Und somit nicht entscheiden, ob das Element gerade ein- oder ausgeblendet ist. Das if(e.style.display=='none') wird also beim ersten Aufruf immer false zurück liefern.
mfG,
steckl
Hi,
Sorry, aber ich verstehe nicht worauf du hinaus willst. Ist irgendwas an meiner Aussage falsch?
ebenfalls sorry. Nein, ich hatte nur nicht genau genug gelesen und auch den Code aus dem Doppelposting nicht vor Augen.
freundliche Grüße
Ingo
Mahlzeit trude,
leider bin ich n nixblicker was jaascript angeht und eigentlich auch was den rest angeht :-)
Dann lern's - SELFHTML ist eine gute Grundlage und das Forum kann fast alle vernünftige gestellten Fragen beantworten.
kannst du mir da bitte n schnipsel quellcode zusammenschreibseln ?
Höchstens als Beispiel (da wir hier sowas ja gerade irgendwo hatten):
<script type="text/javascript">
[code lang=javascript]function auswahl(ich) {
der = document.getElementsByName(ich.value)[0];
der.disabled = !ich.checked;
}
</script>
[...]
<ul>
<li>
<input type="radio" name="auswahl" id="auswahl_liste" value="liste" onclick="auswahl(this);"><select name="liste"></select>
</li>
<li>
<input type="radio" name="auswahl" id="auswahl_neu" value="neu" onclick="auswahl(this);"><input type="text" name="neu">
</li>
</ul>[/code]
Verfeinern musst Du dann selbst ...
MfG,
EKKi