Avatar billede googolplex Novice
30. december 2004 - 10:14 Der er 18 kommentarer og
1 løsning

'Page Loading'-box

Jeg har en side med en formular der skal reloades/submittes en del gange. Er det muligt at lave en 'Page Loading'-box , så brugeren ikke kan gøre noget imens siden reloades/submittes ?
Avatar billede powernodes Nybegynder
30. december 2004 - 10:28 #1
Et simpelt eks:

function wait(elem) {
  elem.disabled=true;
  elem.value="Vent venligst";
  setTimeout("document.forms[0].submit()",3000);
}

and

<form method="post" action="http://www.eksperten.dk">
<input type="button" value="Send" onclick="wait(this);">
</form>
Avatar billede powernodes Nybegynder
30. december 2004 - 10:29 #2
oh.. setTimeout er blot for at du kan nå at set hvad der sker.
I production ville det så se sådan ud

function wait(elem) {
  elem.disabled=true;
  elem.value="Vent venligst";
  document.forms[0].submit();
}
Avatar billede googolplex Novice
30. december 2004 - 10:30 #3
Ja, men den venter i 3 sekunder ikke ? Kan man få den til at vente til præcis når siden er reloaded ?
Avatar billede googolplex Novice
30. december 2004 - 10:30 #4
Ok :)
Avatar billede googolplex Novice
30. december 2004 - 10:47 #5
Smid et svar.
Avatar billede powernodes Nybegynder
30. december 2004 - 10:49 #6
Alright.
Avatar billede googolplex Novice
30. december 2004 - 11:16 #7
Forresten, skal man disable="disable" samtlige elementer i en formularen, eller er man nødt til at tage dem en ad gangen ?
Avatar billede powernodes Nybegynder
30. december 2004 - 11:19 #8
Det er vel rigeligt med submit knappen, så kan brugeren ikke gøre "skade"?
Avatar billede googolplex Novice
30. december 2004 - 11:22 #9
Det er fordi formularen submittes inden den er udfyldt, bl.a vha. en checkbox.
Avatar billede powernodes Nybegynder
30. december 2004 - 11:30 #10
okay hvad så med sådan her:

function wait(elem) {
  elem.disabled=true;
  elem.value="Vent venligst";
  var i,tags=document.forms[0].elements;
  for (i=0; i<tags.length; i++) {
    tags[i].disabled=true;
  }
  setTimeout("document.forms[0].submit()",3000);
}
Avatar billede powernodes Nybegynder
30. december 2004 - 11:31 #11
Ja faktisk kun sådan
function wait(elem) {
  elem.value="Vent venligst";
  var i,tags=document.forms[0].elements;
  for (i=0; i<tags.length; i++) {
    tags[i].disabled=true;
  }
  setTimeout("document.forms[0].submit()",3000);
}

<form method="post" action="http://www.eksperten.dk">
<input type="text">
<input type="button" value="Send" onclick="wait(this);">
</form>

så disables alle form elementer
Avatar billede powernodes Nybegynder
30. december 2004 - 11:32 #12
(igen - slet timeout) =oD
Avatar billede googolplex Novice
30. december 2004 - 11:33 #13
Hvordan ville man bruge den på en checkbox ?
Avatar billede powernodes Nybegynder
30. december 2004 - 11:35 #14
same - onclick="wait(this);"

Så får du bare ingen "Vent venligst" (og skal slette den stump i koden).
Men så kan du jo bare vise en skjult div e.lign. istedet med en tekst i.
Avatar billede powernodes Nybegynder
30. december 2004 - 11:37 #15
Noget ala

function wait(elem) {
  document.getElementById("_wait").style.display="block";
  var i,tags=document.forms[0].elements;
  for (i=0; i<tags.length; i++) {
    tags[i].disabled=true;
  }
  document.forms[0].submit();
}

<form method="post" action="http://www.eksperten.dk">
<div id="_wait" style="display:none;">Vent lige lidt..</div>
<input type="text">
<input type="checkbox" value="Send" onclick="wait(this);">
</form>
Avatar billede cpccorp Juniormester
30. december 2004 - 15:12 #16
lidt i relation til ovenstående, hvordan hvis man ikke skal klikke på noget, men bare skal se "page loading..", indtil siden vises
Avatar billede powernodes Nybegynder
30. december 2004 - 15:17 #17
Well simple

<div id="_load" style="width:100%;height:100%;z-index:99;background-color:white;">Page loading....</div>

og lidt js:

window.onload = function() {
  document.getElementById("_load").style.display="none";
}
Avatar billede roenving Novice
30. december 2004 - 15:17 #18
F.eks. phoenix' avancerede preloader (se under billeder !-): http://www.phoenixv.dk/arkiv.html
Avatar billede googolplex Novice
30. december 2004 - 16:44 #19
Jeg er ikke helt sikker på hvilken af jeres kode jeg skal bruge ?

Det skal bare være således, at når jeg trykker på en given checkbox, så popper der en 'div' op, denne 'div' skal automatisk forsvinde når formularen er loaded.

Kan I give mig et eksempel på dette :)
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