aus JScript-Bereich heraus ein Formular innerhalb der gleichen Seite erzeugen
chris
- javascript
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
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
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
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
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
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
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
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
HALLO
WIE SETZE ICH DEN DIE VISIBILITY VON "HIDDEN" AUF SICHTBAR ZURÜCK:
MIT SHOW HAT ES NICHT GEKLAPPT.
DANKE
chris
<!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
»» <!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
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.