Avatar billede pelkjaer Nybegynder
29. april 2002 - 22:01 Der er 18 kommentarer og
1 løsning

Afvikle en funktion inden submit - how?

Jeg submitter min form således:

function OnFormSubmit(){
  if(confirm("bla. bla.")){
    copyValue();
    document.mithiddenfield.submit();
  }
}

Hvordan får jeg en funktion afviklet inden den submitter?

Stadig blot med onClick="OnFormSubmit()"
Avatar billede gryn Nybegynder
29. april 2002 - 22:20 #1
onClick="OnFormSubmit();return false"
Avatar billede pelkjaer Nybegynder
29. april 2002 - 22:35 #2
Nej slet ikke.

Jeg har nok formuleret mig forkert/stillet det forkerte spørgsmål. Jeg tænker mig lige om og spørger så igen..
Avatar billede gryn Nybegynder
29. april 2002 - 22:40 #3
ahhh... jeg tror, jeg forstår dig.

onClick="OnFormSubmit();return false" er god nok. Sådan skal det se ud.

problemet er:
  document.mithiddenfield.submit();
Denne sætning skal bare stå til sidst i copyValue() funktionen
Avatar billede jakoba Nybegynder
29. april 2002 - 22:47 #4
<form ... onsubmit="return OnFormSubmit();">

du skal så udvide din funktion så den altid returnerer true eller false
true  ->  så bliver formen submitted.
false  ->  så bliver formen ikke submitted

mvh JakobA
Avatar billede jakoba Nybegynder
29. april 2002 - 22:50 #5
din linie:
    document.mithiddenfield.submit();
bør nok ændres til:
    document.minhiddenform.mithiddenfield.submit();

for også at virke andre steder end i IE
Avatar billede pelkjaer Nybegynder
29. april 2002 - 22:56 #6
Nej det er mig der har forhastet min tankegang inden stillt spørgsmål :o)

Min funktion copyValue();

ser sådan ud:

function copyValue() {

    var theHtml = "" + document.frames("myEditor").document.frames("textEdit").document.body.innerHTML + "";
    document.all.EditorValue.value = theHtml;
}

Og min OnFormSubmit();

function OnFormSubmit(){
  if(confirm("Dette dokument er ved at blive gemt\nEr du sikker på at du er færdig med at redigere?")){
    copyValue();
    document.fHtmlEditor.submit();
  }
}


------------------

Det virker også fint nok.

Nu er det bare sådan at jeg vil ha en funktion

function EditXHTMLConvert(str){
blabla
}

afviklet inden både copyvalue og onformsubmit. Men det skal ske her:
onClick="OnFormSubmit()"

Kan jeg forstås *G*
Avatar billede pelkjaer Nybegynder
29. april 2002 - 22:57 #7
Jakoba>>Det behøver kun virke i IE da det er en editer jeg har lavet der er baseret på ms editing comp. :o)
Avatar billede pelkjaer Nybegynder
30. april 2002 - 00:13 #8
Kan man ikke indsætte EditXHTMLConvert i funtionen copyValue() ?

Jeg har prøvet:

function copyValue() {

    var theHtml = "" + document.frames("myEditor").document.frames("textEdit").document.body.innerHTML.document.body.EditXHTMLConvert("") + "";
    document.all.EditorValue.value = theHtml;
}

Meeen javascript er ikke min force :o)
Avatar billede jakoba Nybegynder
30. april 2002 - 00:27 #9
mener du:
    onClick="EditXHTMLConvert(dinstreng);OnFormSubmit()"
eventen kan udføre flere sætninger med ; imellem.

Men det er så simpelt at jeg tipper jeg har misforstået igen :)
Avatar billede jakoba Nybegynder
30. april 2002 - 00:31 #10
jo den kan også indsættes i copyValue som første linie:
hvilken side/ramme ligger EditXHTMLConvert(...) i? ifølge dit forsøg skulle den ligge i den allerinderste iframe
Avatar billede pelkjaer Nybegynder
30. april 2002 - 11:41 #11
Nej denne er ikke nok onClick="EditXHTMLConvert(dinstreng);OnFormSubmit()"  :o)

Dette er lidt sværere end hvad jeg kan gennemskue, så du må gerne hjælpe Jakoba.

Jeg skal have funktionen EditXHTMLConvert ind i copyValue på en eller anden måde.

------------------------------------------

EditXHTMLConvert er et script der "konveterer" til xhtml, bla. ved at lave tagsne om til LowerCase.

Dvs. funktionen er ikke "trikket" endnu, den er der bare.
Avatar billede jakoba Nybegynder
30. april 2002 - 12:34 #12
du kan skrive:

function copyValue() {
    EditXHTMLConvert(dinstreng);  // Linie tilføjet.
    var theHtml = "" + document.frames("myEditor").document.frames("textEdit").document.body.innerHTML.document.body.EditXHTMLConvert("") + "";
    document.all.EditorValue.value = theHtml;
}

men det vil kun virke hvis funktionen EditXHTMLConvert(...) er defineret på den samme html-side som  copyValue()

Hvis den er defineret i en anden ramme må vi adressere os hen til den igennem rammestrukturen.

Så hvordan ser din struktur af rammer/vinduer ud og i hvilke rammer/filer der de to funktioner defineret?

mvh JakobA
Avatar billede pelkjaer Nybegynder
30. april 2002 - 13:19 #13
Begge funktioner er defineret på samme html side. Eneste <iframe> på siden er "myEditor".

"EditorValue" er et 'usynligt' textarea (display:none)

Men hvad skriver jeg som streng i EditXHTMLConvert() ?
Avatar billede pelkjaer Nybegynder
01. maj 2002 - 12:14 #14
Jakoba>>
Jeg er kørt helt fast nu. Og hvordan jeg definerer 'str' forstår jeg slet ikke.
Hvis du har tid, så giv mig din email så sender jeg dig login og pass til hvor siden er.
Avatar billede pelkjaer Nybegynder
05. maj 2002 - 22:12 #15
jakoba gider du lægge et svar?
Avatar billede pelkjaer Nybegynder
08. maj 2002 - 23:34 #16
Så kan vi vidst ikke vente mere på det. Gryn får point.
Avatar billede gryn Nybegynder
09. maj 2002 - 02:22 #17
Det var vist ikke helt fair, men hvis du (jakoba) vil have potene, så sig det endelig.
Avatar billede gryn Nybegynder
09. maj 2002 - 02:22 #18
potene = pointene
Avatar billede pelkjaer Nybegynder
09. maj 2002 - 11:29 #19
Det synes jeg heller ikke, men jeg tror ikke han havde tænkt sig at svare.
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