Avatar billede sebdeluxe Nybegynder
16. oktober 2006 - 22:38 Der er 13 kommentarer og
1 løsning

submit fungere ikke i firefox

Hey

Jeg har lavet et javascript der skal submitte en form...
temmelig simpelt setup:

document.forms[0].submit();

dette fungere fint i IE, men der sker bjælde i Firefox.. Hvorfor?
hele sitet er opbygget med grundlag i PHP og javascript og jeg vil ikke submitte sitet via en submit knap! det skal foregå via javascript. men den funktion jeg har bygget vil bare ikke fungere i firefox.

any ideas

Seb
Avatar billede softspot Forsker
16. oktober 2006 - 22:40 #1
Hvordan ser din form ud?

Hvordan ser resten af funktionen ud?

Hvordan kaldes din funktion?
Avatar billede webstuff Nybegynder
17. oktober 2006 - 13:47 #2
Evt. et dumt spørgsål, men virker:

document.forms[0].submit(true); ?
Avatar billede olebole Juniormester
17. oktober 2006 - 15:12 #3
<ole>

Der skal under ingen omstændigheder stå 'true' - men derudover burde det jo fungere  :)

Spørgsmålet er dog, om det måske fungerer fint, alligevel. En ting, det er værd at være opmærksom på, er, at onsubmit-event'en på en form aldrig fyres af, når formen submittes via JavaScript. Hvis en funktion i onsubmit-handler'en ikke fyres af, betyder det således ikke, at formen ikke submittes  ;o)

En andet issue kunne være, at adresseringen 'document.forms[0]' ikke fungerer under XHTML - som jo ikke er HTML, men et subset af XML, hvorfor der skal anvendes XML-DOM til den slags adresseringer.

Under alle omstændigheder bliver vi nok nødt til at se hele den relevante kode  =)   

/mvh
</bole>
Avatar billede roenving Novice
17. oktober 2006 - 17:17 #4
-- og en tredje ting er, at man ikke kan regne med at forms resettes på samme måde i browserne !-)
Avatar billede sebdeluxe Nybegynder
17. oktober 2006 - 18:11 #5
ohøj! så er jeg tilbage og nu til lidt kode værk.

Det er lidt komplekst det jeg har lavet, men fungere fint I IE.
jeg har 2 iframes liggende i mit main site.
der er en knap i iframe1 som kalder et javascript som så sender nogle data til den anden iframe i en form som ligger der.
lige så snart man har trykket på knappen så sender den en enkelt info og derefter submitter den formen i den anden iframe.

Selve funktionen som laver submit() kaldet står nederst markeret med((HERE ->))
og det er fuldstændigt på samme måde som med IE kaldet....

håber I fatter noget af det materiale jeg har vedlagt


[Main page /Start]
<iframe src="sections/section_freakyfactor.php" id="layout_iframe_freakyfactor" name="layout_iframe_freakyfactor" class="layout_iframe_freakyfactor" frameborder="0" scrolling="no" allowtransparency="yes"></iframe>
____________________________________________________________________________________

<div id="popupbox_content" class="popupbox_content">
<iframe src="sections/section_popupbox.php" id="layout_iframe_popupbox" name="layout_iframe_popupbox" class="layout_iframe_popupbox" frameborder="0" scrolling="no" allowtransparency="yes"></iframe>
</div>
[Main page /End]

[Popupbox /Start]
<form  method="post" name="popupbox_form" id="popupbox_form">
<input type="hidden" name="popupbox_form" id="popupbox_form" />
<input type="hidden" name="popupbox_step" id="popupbox_step" />
</form>

<?php
if (!empty($_REQUEST['popupbox_step'])){
    echo = $_REQUEST['popupbox_step'];
} else {
    echo = 'nada';
}
?>
[Popupbox /End]

[JSFunction /Start]
function showPopup(step){
//Get page for popupbox
if (getBrowserData() == 'MSIE_60'){
parent.layout_iframe_popupbox.document.getElementById("popupbox_step").value = step;
parent.layout_iframe_popupbox.document.getElementById("popupbox_form").submit();
} else if (getBrowserData() == 'Firefox'){
parent.layout_iframe_popupbox.document.getElementById("popupbox_step").value = step;
((HERE ->)) parent.layout_iframe_popupbox.document.getElementById("popupbox_form").submit();
} else {
alert('error');
}
}
[JSFunction /End]
Avatar billede olebole Juniormester
18. oktober 2006 - 09:11 #6
Mon ikke adresseringen skal se sådan ud:
    parent.frames.document.getElementById("popupbox_form").submit();
Avatar billede olebole Juniormester
18. oktober 2006 - 09:12 #7
- vrøvl:
    parent.frames.layout_iframe_popupbox.document.getElementById("popupbox_form").submit();
Avatar billede sebdeluxe Nybegynder
18. oktober 2006 - 09:14 #8
hmm
jeg kan da godt teste om det fungere, men i teorien skal jeg jo fortælle i hvilket layer/frame jeg vil henlede til og hvis jeg bare skrive frames efter parent, så kan det blive temmelig vilkårligt, især fordi der er mange iframes på sitet ;0)

jeg tester når jeg vender tilbage til mine hjemlige omgivelser

Seb
Avatar billede sebdeluxe Nybegynder
18. oktober 2006 - 09:15 #9
aaahhh det kan jeg da godt prøve!!! (vedr. vrøvl)

Seb
Avatar billede sebdeluxe Nybegynder
18. oktober 2006 - 19:07 #10
nop! det var en nitte
firefox er ligeglad med om jeg indføre frames i stringen.

andre ideer?

Seb
Avatar billede olebole Juniormester
19. oktober 2006 - 10:56 #11
Ja, læg et link til siden, så vi kan se, hvordan tingene hænger sammen. Ellers bliver det rent gætværk ... og det er jo ikke hensigtsmæssigt  =)
Avatar billede sebdeluxe Nybegynder
19. oktober 2006 - 20:30 #12
jeg har p.t. ikke noget sted eller mulighed for at lægge det ud, så man selv kan se det sorry!

jeg har læst at firefox har fjernet muligheden for at submitte en form med mindre det er en direkte knap som submitter en form!

jeg bliver nødt til at undersøge videre herfra.

Seb
Avatar billede sebdeluxe Nybegynder
23. oktober 2006 - 20:47 #13
ØV... jeg lukker dette spørgsmål for jeg kommer ingen vegne!
har lige erfaret at IE7 gør fuldstændigt det samme nu..

så nu må jeg finde en anden løsning til at sende informationer fra en iframe til en anden iframe.

nogen ideer? ellers lukker jeg ... ;0)

Seb
Avatar billede sebdeluxe Nybegynder
23. oktober 2006 - 22:50 #14
TYPISK!!

Jeg sad for mig selv og testede nogle småting på et testsite, hvor jeg prøver alle mulige former for koder af.

min submit funktion så således ud:
function showPopup(){
parent.iframe.document.getElementById('step').value = 1;
parent.iframe.document.getElementById('form').submit();

.... kode der fjerner css styles etc.
}

hele fejlen lå i at submit knappen lå før alle ændringerne i stylesene og submit delen skal åbenbart ALTID ligge til sidst..

jeg har fået løst det nu, og det fungere nu både i IE6, IE7 og firefox..

Im happy now, men hvor har jeg dog brugt meget tid på dette.

Seb
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