Avatar billede mini-me Nybegynder
11. april 2004 - 20:08 Der er 21 kommentarer og
2 løsninger

Opret textbox

Hej Eksperter,

Er det muligt at få Javascript til at oprette en <input type="text"> automatisk for hver gang jeg trykker på en knap?

Hvis ja hvordan ?
Avatar billede mini-me Nybegynder
11. april 2004 - 20:24 #1
AnyOne??
Avatar billede roenving Novice
11. april 2004 - 20:44 #2
Hvordan skal du bruge det, for det er ikke svært at lave et element:

newInp = document.createElement('INPUT');
document.forms[0].appendChild(newInp);
newInp.type="text";
newInp.name="nyInput";
newInput.value="En ny text";
newInput.disabled=true;

-- men der skal være noget differentiering på indhold og navn ?-)
Avatar billede thesurfer Nybegynder
11. april 2004 - 20:47 #3
roenving> Er det IE eller X-browser?
Avatar billede roenving Novice
11. april 2004 - 20:52 #4
Det er DOM-browser !-)
Avatar billede thesurfer Nybegynder
11. april 2004 - 20:59 #5
"newInput" skal være "newInp":
newInput.value="En ny text";
newInput.disabled=true;
Avatar billede thesurfer Nybegynder
11. april 2004 - 21:04 #6
har rettet det og det virker fint:

<script type="text/JavaScript">
<!--
function doit()
{
newInp = document.createElement('INPUT');
document.forms[0].appendChild(newInp);
newInp.type="text";
newInp.name="nyInput";
newInp.value="En ny text";

// har fjernet disabled=true.. man skal jo kunne skrive i feltet..? :-)

}
//-->
</script>

<form>
<input type="button" value="opret ny" onclick="doit()">
</form>


- Men hvordan justerer man placering (top og left)? :-)
Avatar billede mini-me Nybegynder
11. april 2004 - 21:06 #7
Roenving, det virker, ang. navn og value, så har jeg ordnet det. Men kan det lade sig gøre at lave den hidden i stedet for text ?
Avatar billede thesurfer Nybegynder
11. april 2004 - 21:14 #8
For at det virker med "hidden" skal linie "document.forms[0].appendChild(newInp);" stå nederest:

newInp = document.createElement('INPUT');
newInp.type="hidden";
newInp.name="nyInput";
newInp.value="En ny text";
newInp.style.top = 200;
document.forms[0].appendChild(newInp);
Avatar billede thesurfer Nybegynder
11. april 2004 - 21:15 #9
linie "newInp.style.top = 200;" er en test jeg lavde.. det virker åbenbart ikke..


Se evt koden her: http://www.faqts.com/knowledge_base/view.phtml/aid/1785/fid/255

Gem koden i en html fil, og se scriptet.
Avatar billede thesurfer Nybegynder
11. april 2004 - 21:17 #10
Aha.. du kan selv bestemme hvor den skal oprettes henne, hvis du bruger:

newInp.style.position="absolute";
newInp.style.top = 200;
newInp.style.left = 20;
Avatar billede roenving Novice
11. april 2004 - 21:22 #11
>>thesurfer

Husk _altid_ enhed på css-angivelser: '200px' !-)

-- og det er rigtigt, at input types er så forskellige, at type skal være angivet før append ...
Avatar billede thesurfer Nybegynder
11. april 2004 - 21:30 #12
OK :-)
Man skal så også huske at putte ' eller " tegn udenom :-)


Hvorfor kan man så ikke aflæse værdien af feltet? F.eks.:

<script type="text/JavaScript">
<!--
function doit()
{
newInp = document.createElement('INPUT');
newInp.type="text";
newInp.name="nyInput";
newInp.value="En ny text";
newInp.style.position="absolute";
newInp.style.top = "200px";
newInp.style.left = "20px";
document.forms[0].appendChild(newInp);
}
//-->
</script>

<form>
<input type="button" name="objnew" value="opret ny" onclick="doit()">
<input type="button" name="objalert" value="opret ny" onclick="alert(document.forms[0].nyInput.value)">
</form>

( Det skal lige siges, at "document.forms[0]" kan erstattes af "this.form".. )

Hvis man ikke kan aflæse værdien, er feltet jo værdiløst..?
Avatar billede thesurfer Nybegynder
11. april 2004 - 21:35 #13
OK.. underligt..
Man kan godt aflæse værdien, i Mozilla FireFox og Opera.. men ikke i Internet Explorer 6..?
Avatar billede roenving Novice
11. april 2004 - 21:46 #14
Og du kan prøve denne:

<input type="button" name="objalert" value="vis ny" onclick="f=this.form.elements;txt='';for(i=0;f.length>i;i++)txt+=f[i].type+' - '+f[i].name+':\t'+f[i].value+'\n';alert(txt)">
Avatar billede thesurfer Nybegynder
11. april 2004 - 21:52 #15
Det virker fint :-)

I Internet Explorer, kan man altså ikke tilgå det nye element direkte..? man skal loop'e igennem formens elementer..?
Avatar billede roenving Novice
11. april 2004 - 21:53 #16
Det var også min konklusion, men jeg vil tro, at det faktisk virker ved submit, men det kan jeg ikke lige prøve ...
Avatar billede thesurfer Nybegynder
11. april 2004 - 22:01 #17
Hehehe.. jeg har bare overtaget spm'et :-)

mini-me> Hvis du vil stille nogle spørgsmål, er du meget velkommen til gøre det :-)


.. det med submit fik jeg ikke helt.. du mener at oprette en submit knap..?
Avatar billede roenving Novice
11. april 2004 - 22:04 #18
Ja, jeg tror at feltet kommer med ved submit af formen !-)
Avatar billede thesurfer Nybegynder
11. april 2004 - 22:09 #19
hehe.. det gør det sq :-)
Jeg klikkede på "opret ny"-knappen, og derefter på submit-knappen...

Eksempel:
<script type="text/JavaScript">
<!--
function doit()
{
newInp = document.createElement('INPUT');
newInp.type="hidden";
newInp.name="nyInput";
newInp.value="En ny text";
newInp.style.position="absolute";
newInp.style.top = "200px";
newInp.style.left = "20px";
document.forms[0].appendChild(newInp);
}
//-->
</script>

<form method="get">
<input type="button" name="objnew" value="opret ny" onclick="doit()">
<input type="button" name="objalert" value="vis ny" onclick="f=this.form.elements;txt='';for(i=0;f.length>i;i++)txt+=f[i].type+' - '+f[i].name+':\t'+f[i].value+'\n';alert(txt)">
<input type="submit" name="submit" value="Send">
</form>

Gav urlen:
?submit=Send&nyInput=En+ny+text
Avatar billede mini-me Nybegynder
14. april 2004 - 19:00 #20
smid nogle svar så vi kan få lukket :P Jeg har fået det til at virke...
Avatar billede roenving Novice
14. april 2004 - 19:14 #21
Velbekomme '-)
Avatar billede thesurfer Nybegynder
15. april 2004 - 15:40 #22
OK, her er et svar, for min kritik af roenvings kode ;-)
.. og "rettelser"/ideer..
Avatar billede roenving Novice
05. december 2004 - 09:53 #23
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging