chris: aus JScript-Bereich heraus ein Formular innerhalb der gleichen Seite erzeugen

hi leute,

hoffentlich kann mir jemand helfen.
ich habe folgenden code:

------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
  <TITLE>ButtonTest</TITLE>

<SCRIPT>

function newForm() {

}

</SCRIPT>

</HEAD>
<BODY>
  <DIV ALIGN="CENTER">
  <H3>Test</H3>
  <DIV ALIGN="CENTER">
   <FORM NAME="buttonTest">
    <TABLE BORDER="1">
    <TR><TD>
      <INPUT TYPE="Button" VALUE="Aktivieren" onClick="newForm()" NAME="Button" ID="ok"></TD>
      <TD>
      <P>Click the "OK" button</P></TD>
    </TR>
    </TABLE> </FORM>  </DIV>
   </DIV></BODY>
</HTML>
----------------------------------------

jetzt möchte ich, dass nach betätigen des buttons auf der gleichen seite ein formular aus der "newForm()"-funktion heraus erzeugt wird.
wer kann mir helfen?

danke
chris

  1. Hi chris,
    wenn das Formular nicht dynamisch erstellt werden muss, sondern eigentlich in Form und Funktion schon feststeht, kannst du es gleich in die Seite einbauen. Setz das Formular in einen <DIV id="name">...</DIV> Bereich.
    Dann kannst Du das Formular beim Laden verstecken mit:

    document.all.name.style.visibility="hidden"

    und mit dem Button rufst Du die Funktion auf, die das Formular "einblendet".

    Wenn das Formular allerdings noch generiert werden muss, vermute ich, dass dann die ganze Seite nochmal dynamisch erstellt und darin das Formular eingebaut werden muss. Wenn es anders geht, wäre ich auch sehr an der Lösung interessiert.

    cu
    Neo

    1. Hi chris,
      wenn das Formular nicht dynamisch erstellt werden muss, sondern eigentlich in Form und Funktion schon feststeht, kannst du es gleich in die Seite einbauen. Setz das Formular in einen <DIV id="name">...</DIV> Bereich.
      Dann kannst Du das Formular beim Laden verstecken mit:

      document.all.name.style.visibility="hidden"

      und mit dem Button rufst Du die Funktion auf, die das Formular "einblendet".

      Wenn das Formular allerdings noch generiert werden muss, vermute ich, dass dann die ganze Seite nochmal dynamisch erstellt und darin das Formular eingebaut werden muss. Wenn es anders geht, wäre ich auch sehr an der Lösung interessiert.

      cu
      Neo

      ...............

      danke für deine hilfe.
      ich werd mal sehen was geht und dann die lösung ablegen.
      vielleicht kommen ja noch mehr vorschläge von anderen forum`lern.

      danke erstmal.
      chris

    2. Hi chris,
      wenn das Formular nicht dynamisch erstellt werden muss, sondern eigentlich in Form und Funktion schon feststeht, kannst du es gleich in die Seite einbauen. Setz das Formular in einen <DIV id="name">...</DIV> Bereich.
      Dann kannst Du das Formular beim Laden verstecken mit:

      document.all.name.style.visibility="hidden"

      und mit dem Button rufst Du die Funktion auf, die das Formular "einblendet".

      Wenn das Formular allerdings noch generiert werden muss, vermute ich, dass dann die ganze Seite nochmal dynamisch erstellt und darin das Formular eingebaut werden muss. Wenn es anders geht, wäre ich auch sehr an der Lösung interessiert.

      cu
      Neo

      ---------------------------------

      hallo neo,

      kannst du mir sagen, wo ich document.all.name.style.visibility="hidden"
      angeben muss, damit beim laden des dokumentes das formular versteckt wird.

      danke dir

      chris

      1. hi chris,

        ein möglicher weg ist dieser:
        du kannst im header einfügen:

        <style type="text/css">
        <!--
        .name {visibility:hidden;}

        -->
        </style>

        <script language=javascript>
        <!--
        function zeig(wen)
        {
        eval('document.all["'+wen +'"].style.visibility="visible""');
        }
        -->
        </script>

        ---------------------

        im body definierst du dann dein Formular

        <form ...>
        <div id="anderername" class="name">
        <input....>
        ...
        </div>

        ---------------------

        und mit dem Button rufst du dann die Funktion zeig('anderername') auf. Dann sollte (beim MSIE) das Formular auftauchen.
        Du kannst innerhalb der style-definition auch gleich die position u.a. definieren:

        .name {visibility:hidden;
               position: absolute;
               left:100;
               top:100;
               width:400;
              }

        cu
        Neo

  2. Hi chris!

    ich weiß zwar nicht wozu und glaube das für dich die antwort von neo die bessere lösung ist - aber nachdem was du gefragt hast findest du im MSDN http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/innerhtml.asp

    Den rest solltest du dir selber zusammenstricken können.

    CU Roman

    1. Hi chris!

      ich weiß zwar nicht wozu und glaube das für dich die antwort von neo die bessere lösung ist - aber nachdem was du gefragt hast findest du im MSDN http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/innerhtml.asp

      Den rest solltest du dir selber zusammenstricken können.

      CU Roman

      ------------

      kann ich nicht im skript per "document.write();" html-tags erzeugen?

      -------------

      danke,
      chris

      1. Hi Chris!

        kann ich nicht im skript per "document.write();" html-tags erzeugen?

        ja kannst du <../../tecbb.htm#a21> obwohl das nur eingeschränkt ist und nicht bei weitem an dei möglichkeiten von innerHTML rankommen - du muß es nehmen wenn du JavaScript verwenden willst - aber für JScript lege ich dir innerHTML nahe.

        CU Roman

        1. HALLO

          WIE SETZE ICH DEN DIE VISIBILITY VON "HIDDEN" AUF SICHTBAR ZURÜCK:
          MIT SHOW HAT ES NICHT GEKLAPPT.

          DANKE
          chris

  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>   <HEAD>
    <TITLE>ButtonTest</TITLE>

    <SCRIPT>

    function newForm() {
    document.write("<html><form name=test onSubmit=newForm()><input type=text name=hallo value='ich wurde erzeugt'></input></form></html>")

    }

    </SCRIPT>

    </HEAD>
      <BODY>
       <DIV ALIGN="CENTER">
       <H3>Test</H3>
       <DIV ALIGN="CENTER">
               <FORM NAME="buttonTest">
         <TABLE BORDER="1">
         <TR><TD>
           <INPUT TYPE="Button" VALUE="Aktivieren" onClick="newForm()" NAME="Button" ID="ok"></TD>
           <TD>
           <P>Click the "OK" button</P></TD>
         </TR>
              </TABLE> </FORM>  </DIV>
        </DIV></BODY>
    </HTML>
    Schreib einfach alles was auf die Seite soll in document.write rein.
    Ich weiß nicht ob du dir die Sache so vorgestellt hast???
    Aber ne Lösung wärs außer wenn du die Seite unter keinen Umständen
    neu schreiben willst dann nimm lieber die <div>-Lösung.
    Allerdings versteht der Netscape kein <div> sondern nur <layer>.
    gruß,

    Kye_Raz1

    1. »»  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      »»  <HTML>   <HEAD>
      »»  <TITLE>ButtonTest</TITLE>

      <SCRIPT>

      function newForm() {

      »»  document.write("<html><form name=test onSubmit=newForm()><input type=text name=hallo value='ich wurde erzeugt'></input></form></html>")

      }

      </SCRIPT>

      </HEAD>
        <BODY>
         <DIV ALIGN="CENTER">
         <H3>Test</H3>
         <DIV ALIGN="CENTER">
                 <FORM NAME="buttonTest">
           <TABLE BORDER="1">
           <TR><TD>
             <INPUT TYPE="Button" VALUE="Aktivieren" onClick="newForm()" NAME="Button" ID="ok"></TD>
             <TD>
             <P>Click the "OK" button</P></TD>
           </TR>
                </TABLE> </FORM>  </DIV>
          </DIV></BODY>

      »»  </HTML>
      »»  Schreib einfach alles was auf die Seite soll in document.write rein.
      »»  Ich weiß nicht ob du dir die Sache so vorgestellt hast???
      »»  Aber ne Lösung wärs außer wenn du die Seite unter keinen Umständen

      neu schreiben willst dann nimm lieber die <div>-Lösung.
      Allerdings versteht der Netscape kein <div> sondern nur <layer>.
      gruß,

      Kye_Raz1

      ---------------------

      hallo,

      danke für deinen vorschlag.
      das hab ich auch versucht, allerdings meldet sich dann beim aufruf der funktion der browser mit einer fehlermeldung.

      danke
      chris

      1. HI, du solltest auch schreiben welche Fehlermeldungen dein Browser ausgibt,
        die führen dich meistens zum Ziel.Bei mir hat das script funktoniert.
        Ich habe schon unzählige Sachen mit dieser Methode (document.write gelöst)
        und nach korrektur meiner skript-Fehler haben diese immer funktioniert.
        Falls du es noch nicht weißt aber im Netscape kriegst du nach Aufruf deiner Seite mit der URL:
        javascript: eine Ansicht deiner Fehler im Skript,

        gruß
        kye_raz1.