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

Problem med onclick

Jeg har følgende funktion (virker fint):

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();
}

Samt denne checkbox:

<input onclick="if (this.checked) { this.form['php'].value='yes'; }else { this.form['php'].value='no'; } wait(this);" name="__php" type="checkbox" value="1" />

Problemet er, at den første del af min 'onclick' ikke virker. Værdien af checkbox'en bliver ikke sat til 'yes', men er altid 'no'. Hvis jeg fjerner 'wait(this)', så virker det fint.

Jeg har ingen control over følgende del:

onclick="if (this.checked) { this.form['php'].value='yes'; }else { this.form['php'].value='no'; }

Den er genereret af noget serverkode, som jeg ikke kan ændre på.

Er der en anden løsning ?
Avatar billede googolplex Novice
30. december 2004 - 23:30 #1
Jeg er gennem test kommet frem til at fejlen må ligge i denne sætning:

document.forms[0].submit(); (Min form elementer submittes ikke korrekt)

Denne sætning:

this.form.submit();

...virker fint. Jeg har prøvet at skifte den første ud med den anden i funkltionen, men så virker funktionen slet ikke, hvad kan jeg så gøre ?
Avatar billede olebole Juniormester
30. december 2004 - 23:34 #2
<ole>

Det er svært at sige - prøv med et link

/mvh
</bole>
Avatar billede googolplex Novice
30. december 2004 - 23:57 #3
http://googolplex.dk/pearform.php

Som du kan se så submittes formularen fint via onclick på ASP-checkboxen, elementer bliver sat. Men ved PHP, går det galt.
Avatar billede olebole Juniormester
31. december 2004 - 00:08 #5
Har du til en start prøvet at skrive koden i et HTML-dokument?  :)
Avatar billede googolplex Novice
31. december 2004 - 00:20 #6
Hehe, nej, for det er ren test, men bare rolig :)

Har det nogen betydning i dette tilfælde ?
Avatar billede olebole Juniormester
31. december 2004 - 00:21 #7
I virkeligheden troro jeg, det er en bug, at 'this.form.submit()' virker. Du disabler jo checkbox'en - og så må den jo ikke optræde på serveren  :)
Prøv dette:

<?
print "<xmp>";
var_dump($_POST);
print "</xmp>";
?>
<form action="<?=$_SERVER["PHP_SELF"]?>" method="post">
<input type="checkbox" name="ib" value="yes" checked disabled><br>
<button type="submit">TEST</button>
</form>
Avatar billede googolplex Novice
31. december 2004 - 00:26 #8
Det er fordi der er en speciel checkbox som HTML_QuickForm genererer, der sætter en værdi for en checkbox selvom den ikke er afhakket.

Hvis jeg flytter denne 'document.forms[0].submit();' ned i selve onclick="" så virker det fint.
Avatar billede googolplex Novice
31. december 2004 - 00:32 #9
Jeg er ikke helt med mht. til dit eksempel...
Avatar billede olebole Juniormester
31. december 2004 - 00:45 #10
En disabled checkbox må slet ikke kunne findes på serveren - og du disabler jo alle elementer i din wait-funktion. Derfor virker det, når du ikke kører den funktion  ;o)
Avatar billede googolplex Novice
31. december 2004 - 00:47 #11
Ok, så havde jeg rent faktisk forstået hvad du mente :)

Mit problem er bare, at formularen skal reloades en del gange og jeg ville gerne 'låse' formularen imens den reloades, kan det lade sig gøre på en eller anden måde ?
Avatar billede olebole Juniormester
31. december 2004 - 00:58 #12
Du kunne jo gemme formen med display='none' til siden er opdateret
Avatar billede googolplex Novice
31. december 2004 - 09:39 #13
Kan du ikke lige give et eksempel på hvordan jeg gemmer formen med en checkbox ?
Evt. hvor den skriver 'Formen opdateres...' i stedet.

På forhånd tak :)
Avatar billede olebole Juniormester
31. december 2004 - 11:06 #14
Du kunne jo give div'et '_wait' lidt andre styles:
  position:absolute;width:100%;height:100%;z-index:100
Så burde den ligge og spærre for resten af dokumentet, mens det vises
Avatar billede googolplex Novice
02. januar 2005 - 09:42 #15
Læg et svar :)
Avatar billede olebole Juniormester
02. januar 2005 - 10:40 #16
Det må jeg tage som et udtryk for, det lykkedes  ;o)
Avatar billede olebole Juniormester
02. januar 2005 - 10:44 #17
PS: Du kunne jo også:
  style="position:absolute;width:100%;height:100%;z-index:100;background-color:#666666;filter:Alpha(opacity=20);-moz-opacity:0.2;opacity:0.2"

Så er det svagt gråt/semitransparent, når det bliver vist - og det skulle gerne virke i langt de fleste moderne browsere
Avatar billede googolplex Novice
04. januar 2005 - 23:19 #18
Jeg kan ikke se hele den sidste style :(
Avatar billede googolplex Novice
04. januar 2005 - 23:20 #19
Sorry, jeg kunne kopierer den :)
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