Avatar billede flashn00b Nybegynder
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">
Avatar billede flashn00b Nybegynder
18. juni 2005 - 12:01 #1
Problemet den IKKE vil skjule "textGoesHere" og "textGoesHereTable" efter 10 sekunder..
Avatar billede nielle Nybegynder
18. juni 2005 - 12:24 #2
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);
}
Avatar billede flashn00b Nybegynder
18. juni 2005 - 12:51 #3
Gør den ikke.
Hvad gør jeg så? :(
Avatar billede nielle Nybegynder
18. juni 2005 - 13:13 #4
<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>
Avatar billede nielle Nybegynder
18. juni 2005 - 13:15 #5
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 ...
Avatar billede flashn00b Nybegynder
18. juni 2005 - 13:49 #6
Ja, men jeg er jo ikke javascript mester, derfor jeg vil have hjælp.

Dvs. kommentar: 13:13:58 vil ikke virke?
Avatar billede flashn00b Nybegynder
18. juni 2005 - 13:54 #7
Jo, det virker ved første besked.
Anden gang man skriver bliver det "tomt"
Avatar billede nielle Nybegynder
18. juni 2005 - 14:32 #8
Post noget mere af din kode sådan at jeg kan se hvad der er som er "tomt".
Avatar billede flashn00b Nybegynder
18. juni 2005 - 14:51 #9
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..
Avatar billede nielle Nybegynder
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.
Avatar billede flashn00b Nybegynder
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>
Avatar billede nielle Nybegynder
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.
Avatar billede flashn00b Nybegynder
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.
Avatar billede nielle Nybegynder
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.
Avatar billede olebole Juniormester
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>
Avatar billede olebole Juniormester
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?
Avatar billede flashn00b Nybegynder
18. juni 2005 - 16:54 #17
har lavet parent.andet.location='skriv.php?besked=' +tekst; og virker stadig ikke..

andet er en iframe.
Avatar billede olebole Juniormester
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
Avatar billede flashn00b Nybegynder
18. juni 2005 - 16:56 #19
Jeg vil have den til at fjerne diven efter 10 sekunder, når man trykker ENTER.
Avatar billede olebole Juniormester
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  :)
Avatar billede flashn00b Nybegynder
18. juni 2005 - 17:01 #21
Du kan jo ligeså hjælpe mig.. Så kan vi få spm'er lukket ;)
Avatar billede olebole Juniormester
18. juni 2005 - 17:05 #22
Nej, hvis folk får svar på ulovlige spørgsmål, begynder de jo aldrig at overholde reglerne  :)
Avatar billede flashn00b Nybegynder
18. juni 2005 - 18:12 #23
.. eller fordi du ikke kan finde ud af det =)
Avatar billede olebole Juniormester
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  :)
Avatar billede per1291 Nybegynder
19. juni 2005 - 16:46 #25
Hvor er IGNORE-knappen?

Hilsen  Per
Avatar billede flashn00b Nybegynder
19. juni 2005 - 21:49 #26
.
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

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