Avatar billede spunk13 Nybegynder
21. januar 2004 - 21:48 Der er 14 kommentarer og
1 løsning

Dynamisk objekt mister fokus

<script type="text/javascript">
function newFile(objID) {
objID.innerHTML = "(opret ny fil)<br><input class='field' name='newName' size='10'>&nbsp;<button class='but1' onClick='newFlink(document.getElementbyID(\"newName\").value);'>Opret</button>";
}

function newFlink(objID2) {
document.location.href = "filesystem.php?new=1&newName="+objID2;
}

</script>

<span id='newfile' onClick='newFile(this);'>(opret ny fil)</span>


---

Ovenstående kode virker ikke ved mig. Hvad er det lige problemet er?
Avatar billede thesurfer Nybegynder
21. januar 2004 - 22:15 #1
JavaScript er case-sensitive.. dvs "Hej" ikke er det samme som "HeJ", "heJ", "hEj", osv..
Plus, at det skal være newFile(this.id)..
Når du brueger getElementById ("Id"), skal du ha' en id:
<input class='field' id='newName' size='10'>

Her er koden der virker:

<span id='newfile' onClick='newFile(this.id);'>(opret ny fil)</span>

<script type="text/javascript">
function newFile(objID) {
document.getElementById(objID).innerHTML = "(opret ny fil)<br><input class='field' name='newName' id='newName' size='10'>&nbsp;<button class='but1' onClick='newFlink(document.getElementById(\"newName\").value);'>Opret</button>";
}

function newFlink(objID2) {
document.location.href = "filesystem.php?new=1&newName=" + objID2;
}
</script>
Avatar billede spunk13 Nybegynder
21. januar 2004 - 22:21 #2
Det virker stadig ikke ved mig - newName mister stadig fokus efter jeg fokuserer det.
Avatar billede mm12010 Nybegynder
21. januar 2004 - 22:30 #3
function newFile(objID) {
document.getElementById(objID).innerHTML = "(opret ny fil)<br><input class='field' name='newName' id='newName' size='10'>&nbsp;<button class='but1' onClick='newFlink(document.getElementById('newName').value); document.getElementById('newName').focus()'>Opret</button>";
}
Avatar billede spunk13 Nybegynder
21. januar 2004 - 22:36 #4
mm12010 > hjælper ikke, mister fokus hver eneste gang jeg slipper venstre museknap.
Avatar billede thesurfer Nybegynder
21. januar 2004 - 22:40 #5
Det skal vel være:

function newFile(objID) {
document.getElementById(objID).innerHTML = "(opret ny fil)<br><input class='field' name='newName' id='newName' size='10'>&nbsp;<button class='but1' onClick='newFlink(document.getElementById(\"newName\").value);'>Opret</button>";
document.getElementById('newName').focus();
}
Avatar billede thesurfer Nybegynder
21. januar 2004 - 22:41 #6
Det virker hos mig..
Jeg går ud fra at tekstfeltet skal have fokus, så snart at det er oprettet..
Avatar billede spunk13 Nybegynder
21. januar 2004 - 22:43 #7
Ja det virker, midlertidigt. Så snart jeg trykker væk begynder den på det andet møg
- der må vel være noget andet galt?
Mistænker min brug af funktioner.
Avatar billede thesurfer Nybegynder
21. januar 2004 - 22:44 #8
"Så snart jeg trykker væk begynder den på det andet møg"? Hvad er det lige du vil ha'?
Kom med en god og lang forklaring :)
Avatar billede spunk13 Nybegynder
21. januar 2004 - 22:50 #9
Okay, den kode som i har stykket sammen nu:
Jeg trykker "opret ny fil". Tekstfeltet og knappen kommer frem, markøren har fokus i tekstfeltet. Jeg skriver noget tilfældigt i tekstfeltet, trykker inde i tekstfeltet
- og vupti, det jeg har indtastet er væk og markøren vil ikke blinke.
Avatar billede thesurfer Nybegynder
21. januar 2004 - 22:54 #10
ja.. mystisk.. kigger lige på det..
Avatar billede spunk13 Nybegynder
21. januar 2004 - 22:59 #11
Aha! Jeg har løsningen:

<span id='newfile' onClick='newFile(this.id);'>(opret ny fil)</span>

Kig godt på onClick-eventen. Når jeg klikker på tekstfeltet, så er det jo en del af newfile. Dvs. at newfiles onClick event bliver triggered når jeg fokuserer tekstfeltet :)
Avatar billede spunk13 Nybegynder
21. januar 2004 - 22:59 #12
*newfile
Avatar billede spunk13 Nybegynder
21. januar 2004 - 23:01 #13
Så hvad jeg gør er at jeg fjerner newfile's onClick event, i funktionen newFile.
Avatar billede mm12010 Nybegynder
21. januar 2004 - 23:06 #14
<script type="text/javascript">
function newFile(objID) {
document.getElementById(objID+"_div").style.display="block";
document.getElementById('newName').focus()
}
function newFlink(objID2) {
location.href = "filesystem.php?new=1&newName=" + objID2;
}
</script>
<span id='fil' onClick='newFile(this.id);'>(opret ny fil)</span>
<div id="fil_div" style="display:none;"><input class='field' name='newName' id='newName' size='10'>&nbsp;<button class='but1' onClick='newFlink(document.getElementById("newName").value);'>Opret</button></div>
Avatar billede spunk13 Nybegynder
21. januar 2004 - 23:11 #15
mm12010 > rigtigt, men jeg regnede den selv ud..
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



IT-JOB

Cognizant Technology Solutions Denmark ApS

Test Architect - Projects

Netcompany A/S

Managing Architect

Metroselskabet og Hovedstadens Letbane

IT Infrastructure Administrator