Text -> textfeld -> text

  • Hallo, gibt es eine einfach methode ein text nach klick auf einen Button in ein textfeld umzuwandeln, diesen ggf zu ändern und wieder zum text umzuwandeln nach klick auf einen Button. Im Moment werden bei mir da 2 methoden aufgerufen, die dann per suche in den labels und containern die felder umändern. Das ändern zum textfeld geht:

    Das ändern zurück geht allerdings nicht:

    Wo liegt der fehler oder kann man es auch viel einfacher lösen ? Die zuweisung in der HTML Datei geht wie folgt bei mir (j ist die Zeilennummer in dem Fall):

    PHP
    output += "<td>Test</td><td width=\"200px\"><div id=\"container"+j+"\"><div id=\"label"+j+"\"></div></div></td>";
    output += "<td width=\"150px\"><div id=\"image\"><img alt=\"Bearbeiten\" id=\"button\" src=\"img/edit.jpg\" onclick=\"changeToText(j)\">"+ elements.getValue(1, 1, 1)+"</div></td></tr>";

    Danke schonmal.

    2 Mal editiert, zuletzt von Tejo1986 (10. Dezember 2010 um 13:43)

  • klar geht das alles in einer funktion du musst lediglich auslesen, um welches element es geht und entsprechend die weiche stellen..
    mit jquery wäre der code auch etwas schlanker, also wenn du jquery ggf eh schon hast ist es sinnvoll dies auch zu nutzen.
    dann frag ich mich wieso du nen inline-element mit nem block-element tauschst und wieso du die funktion nicht auf klick oder doppelklick ausführst.
    kann des grad nich genu testen, weil ich in der banh sitz und in wenigen minuten die verbindung abreissen wird.

    aber ich werd dir heute oder sonst bis morgen abend dafür nen script schreiben.

    kannst dir dann aussuchen, ob mit oder ohne jquery.

    bin so ab 21uhr spätestens wieder online

  • Ich muss nur kurz was einwerfen.

    innerHTML ist BÖSE!!!!
    JavaScript sollte mit DOM arbeiten.

    Code
    button.innerHTML = '<img src="img/edit.jpg" width=\"10\" heigth=\"10\" alt="Bearbeiten" onclick="changeToTextconfig(j)">';


    Diese Zeile strotzt vor Fehlern - die kann nicht funktionieren.
    Die Anführungszeichen sind falsch escaped - dadurch wird der Browser während der Ausführung in den Quirks-Modus geworfen.
    Und das j sollte nicht das Zeichen "j", sondern die Variable j sein, oder?

    Verwende die DOM-Elemente, statt innerHTML
    Damit kann man solche Fehler vermeiden.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • sooo, wie gehabt.. mit jquery isses einfacher :D

    funzt mit doppelklick aufs element

  • also du lädst dir jquery runter bindest das vor dem script ein, dann vergibst du deinem button ne id zB id="btnAendern"

    und da wo die document.ready()- funktion ist schreibste dann statt
    $('.textdings') das hier: $('#btnAendern')

  • So, die dati hab ioch mir besorgt und gespeichert.

    Frage is, das einbinden geht ja nur in ner jsp Datei oder ?

    Innerhalb der jsp Datei wird dann die tabelle bei mir erzeugt, das selber passiert über ne java datei, in der die SQl Abfragen gemacht und aus den Ergebnissen die Tabelle gebuat wird. Kann ich dennoch normal auf die jquery statements zugreifen ?

  • geht das nicht auch einfacher über nen readonly/disabled Wert ?

    Irgendwie kann ich in meine output kein <form> mitgeben, da er da immer nen laufzeitfehler bekommt.
    Wenn ich jeze auf nen Button klicke, um mein feld auf disabled zu setzen, wie mache ich das ?
    onclick=change(0)

    und dann in meiner functions.js

    PHP
    function change(m){ 
    switch(m.value){
    case '0':
    disable(document.getElementsById('ref1'));break;}

    Warum geht das nicht ? Das Feld was ich auf disabled setzen will heißt mit namen und id: Ref1. Das sollte doch so klappen ?

  • ich frag mich, wieviel plan du von dem hast was du schreibst.. du hantierst mit ner jsp rum und kommst mit javascript nich klar?

    also das javascript bindest du da ein, wo du deinen html-quellcode hinkloppst und wenn du mal mehr code posten würdest, könnte man dir gewiss auch mehr helfen.
    ich tippe mal darauf, dass die jsp dir das gerüst bietet und das servlet einfach nur die shizzle-logic bietet, um diene tabelle zu erzeugen, das tolle an jquery ist, dass du einfach zwei scripte im dokument (head oder ody) includest und dann alles "unobstrive" also nicht offensichtlich läuft.
    das is weder schwer, noch hexenwerk