18. juni 2005 - 12:00
Der er
25 kommentarer og 1 løsning
Vil ikke slette diven!
Hej Jeg har et "skrive"-system. Jeg har et input som kaldes "besked" Når man trykker ENTER kører funktionen, som kaldes bubble(f), hvor i formen vi laver ved onsubmit bubble(this)! Problemet er. Når man trykker ENTER skal der gå 10 sekunder før den sletter div'sne. Altså. Se min kode her. Du vil nok kunne forstå det: <SCRIPT type="text/javascript"> function Clear(){ parent.andet.location = 'ikkeaktiv.php'; parent.chat.document.getElementById('textGoesHereTable').style.visibility = 'hidden'; parent.chat.document.getElementById('textGoesHere').style.visibility = 'hidden'; } function bubble(f){ var tekst = f.besked.value.replace(/<\/?[a-z].*?>/ig, "").substring(0, 70); parent.system.document.getElementById('js').src = 'skriv.php?besked=' +tekst; parent.chat.document.getElementById('textGoesHereTable').style.visibility='visible'; parent.chat.document.getElementById('textGoesHere').innerHTML = tekst; return ok(); } function ok(){ setTimeout("Clear()", 10000); } </script> <form action="?skriv=ok" name="lolz" id="lolz" method="post" onSubmit="bubble(this)"> <input type="text" name="besked">
Annonceindlæg fra Infor
Problemet den IKKE vil skjule "textGoesHere" og "textGoesHereTable" efter 10 sekunder..
Det lader til at det er det faktum at du submitter som ødelægger det for dig. Øjensynligt bliver setTimeout(...) simpelthen annulleret fordi at du - efter en submit - rent logisk set er over på en ny side. At din ok() faktisk bliver udført, kan du overbevise dig selv om ved at smide en alert ind i den: function ok(){ alert("Inde i ok"); setTimeout("Clear()", 10000); }
Gør den ikke. Hvad gør jeg så? :(
<script type="text/javascript"> function Clear() { parent.andet.location = 'ikkeaktiv.php'; parent.chat.document.getElementById('textGoesHereTable').style.visibility = 'hidden'; parent.chat.document.getElementById('textGoesHere').style.visibility = 'hidden'; } function bubble(f) { var tekst = f.besked.value.replace(/<\/?[a-z].*?>/ig, "").substring(0, 70); parent.system.document.getElementById('js').src = 'skriv.php?besked=' +tekst; parent.chat.document.getElementById('textGoesHereTable').style.visibility='visible'; parent.chat.document.getElementById('textGoesHere').innerHTML = tekst; ok(); return false; } function ok() { setTimeout("Clear()", 10000); } </script> <form action="?skriv=ok" name="lolz" id="lolz" method="post" onSubmit="return bubble(this)"> <input type="text" name="besked"> </form>
Hov, der var lige noget som smuttede: Tja, du kan jo øjensynligt ikke gøre det når du også vil submitte. Men hvorfor vil du også gøre det? Det ser ikke pt. Ud til at du har noget virkeligt interessant i din form. En løsning kunne være denne hvor at der godt nok submittes, men hvor at submitten annuleres med det samme: ... og så skulle koden have været her ...
Ja, men jeg er jo ikke javascript mester, derfor jeg vil have hjælp. Dvs. kommentar: 13:13:58 vil ikke virke?
Jo, det virker ved første besked. Anden gang man skriver bliver det "tomt"
Post noget mere af din kode sådan at jeg kan se hvad der er som er "tomt".
Altså. Du skriver en besked. Det kommer frem i taleboblen. Så går der 10 sekunder og den bliver fjernet. Men efter de 10 sekunder er gået vil den ikke skrive noget mere..
18. juni 2005 - 14:54
#10
Der er intet i ovenstående kode som skulle forhindre at den fortsatte efter 10 sekunder. Hvis du ikke poster noget kode, har jeg ikke nogen anden mulighed end at gætte - og det er jeg ikke specielt vild med.
18. juni 2005 - 15:03
#11
Hmm.. vil du have alt? <SCRIPT type="text/javascript"> function Clear(){ parent.andet.location = 'ikkeaktiv.php'; parent.chat.document.getElementById('textGoesHereTable').style.visibility = 'hidden'; parent.chat.document.getElementById('textGoesHere').style.visibility = 'hidden'; } function bubble(f){ var tekst = f.besked.value.replace(/<\/?[a-z].*?>/ig, "").substring(0, 70); parent.system.document.getElementById('js').src = 'skriv.php?besked=' +tekst; parent.chat.document.getElementById('textGoesHereTable').style.visibility='visible'; parent.chat.document.getElementById('textGoesHere').innerHTML = tekst; ok(); return false; } function ok(){ setTimeout("Clear()", 10000); } </script> <form action="?skriv=ok" name="lolz" id="lolz" method="post" onSubmit="return bubble(this)"> <input type="text" name="besked"> </form>
18. juni 2005 - 15:46
#12
Jeg vil bare have nok af din kode til at det kan køre. Det du har postet indeholder referencer til en hel masse andet og det kan ikke køre af sig selv uden at give scriptfejl.
18. juni 2005 - 16:35
#13
Eh? Den giver ingen scriptfejl. og hvad mener du med "og kører".. har kun det kode i selve filen.
18. juni 2005 - 16:44
#14
Når du nu f.eks. har en reference til: parent.system.document.getElementById('js').src = 'skriv.php?besked=' +tekst; - så betyder det at du har noget som hedder id="js" et eller andet sted i din kode. koden ind på en blank side uden at inkluder dette så får jeg en JavaScript-fejl når jeg forsøger at køre koden.
18. juni 2005 - 16:50
#15
<ole> <SCRIPT type="text/javascript"> function Clear(){ parent.andet.location = 'ikkeaktiv.php'; parent.chat.document.getElementById('textGoesHereTable').style.visibility = 'hidden'; parent.chat.document.getElementById('textGoesHere').style.visibility = 'hidden'; } function bubble(f){ var tekst = f.besked.value.replace(/<\/?[a-z].*?>/ig, "").substring(0, 70); parent.system.document.getElementById('js').src = 'skriv.php?besked=' +tekst; parent.chat.document.getElementById('textGoesHereTable').style.visibility='visible'; parent.chat.document.getElementById('textGoesHere').innerHTML = tekst; } var besk = "<?=$_POST["besked"]?>"; if (besk!="") setTimeout("Clear()", 10000); </script> /mvh </bole>
18. juni 2005 - 16:52
#16
Glem det. Din opgave hænger ikke sammen. Når formen submittes, slettes felterne jo ... hvad er det, du vil?
18. juni 2005 - 16:54
#17
har lavet parent.andet.location='skriv.php?besked=' +tekst; og virker stadig ikke.. andet er en iframe.
18. juni 2005 - 16:55
#18
- og så skal du vist lukke dette spm, inden en CoAdmin gør det. I følge E's regler skal du vente en uge, før du må genoprette et spørgsmål, du allerede har haft oprettet
18. juni 2005 - 16:56
#19
Jeg vil have den til at fjerne diven efter 10 sekunder, når man trykker ENTER.
18. juni 2005 - 16:58
#20
Jeg vil gerne hjælpe, men ikke når du overtræder E's regler. Du må lære at overholde de regler, du accepterede, da du oprettede din brugerprofil ... vent en uge, så kan vi kikke på det :)
18. juni 2005 - 17:01
#21
Du kan jo ligeså hjælpe mig.. Så kan vi få spm'er lukket ;)
18. juni 2005 - 17:05
#22
Nej, hvis folk får svar på ulovlige spørgsmål, begynder de jo aldrig at overholde reglerne :)
18. juni 2005 - 18:12
#23
.. eller fordi du ikke kan finde ud af det =)
18. juni 2005 - 20:31
#24
Jeg tror, du kender Ekspertens brugere dårligere, end de kender dig ;o) Der er ingen tvivl om, din tilgang til problemet er så sort, at det kræver en tydelig forklaring - men med en sådan skulle det undre mig såre, hvis ikke jeg kan løse det på en fornuftig måde. Du kan jo prøve mig om en uges tid :)
19. juni 2005 - 16:46
#25
Hvor er IGNORE-knappen? Hilsen Per
19. juni 2005 - 21:49
#26
.
Vi tilbyder markedets bedste kurser inden for webudvikling