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 ?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
11. april 2004 - 20:24
#1
AnyOne??
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 ?-)
11. april 2004 - 20:47
#3
roenving> Er det IE eller X-browser?
11. april 2004 - 20:52
#4
Det er DOM-browser !-)
11. april 2004 - 20:59
#5
"newInput" skal være "newInp": newInput.value="En ny text"; newInput.disabled=true;
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)? :-)
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 ?
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);
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;
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 ...
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..?
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..?
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)">
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..?
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 ...
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..?
11. april 2004 - 22:04
#18
Ja, jeg tror at feltet kommer med ved submit af formen !-)
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
14. april 2004 - 19:00
#20
smid nogle svar så vi kan få lukket :P Jeg har fået det til at virke...
14. april 2004 - 19:14
#21
Velbekomme '-)
15. april 2004 - 15:40
#22
OK, her er et svar, for min kritik af roenvings kode ;-) .. og "rettelser"/ideer..
05. december 2004 - 09:53
#23
-- og tak for point ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling