Avatar billede ultik Nybegynder
22. april 2001 - 15:18 Der er 12 kommentarer og
1 løsning

focus() i IE 5.5 !!!

HJÆÆÆÆÆÆLP !!

Jeg har et system der giver et tekstfelt fokus fra en anden frame. Systemet virker fuldt ud i IE 5.0, og også delvist i IE 5.5, for det virker når man klikker på \"send\". MEN ikke hvis man trykker [ENTER]... JEG FATTER DET IKKE !!!!??? Der må være nogen der har erfaringer med dette !!!!

Denne kode køres når brugeren submitter den form han/hun skriver i :

    function sendmsg()
    {
        window.parent.invisinput.document.sendform.msg.value = document.msgfrm.ms.value;
<% if session(\"textcolor\") = true then %>
          window.parent.invisinput.document.sendform.textcolor.value = document.msgfrm.textcolor.options[document.msgfrm.textcolor.selectedIndex].value;
<% end if %>
        window.parent.invisinput.document.sendform.submit();
        document.msgfrm.ms.value = \"\";
        return false;
    }


Denne kode køres så, som onSubmit i sendform formularen, der bliver submittet fra den ovenstående kode !....

var doc = window.parent.msg.document;
    function givFokus() {
      <% if not isFrozen(session(\"nickname\")) then %>
        doc = window.parent.msg.document;
        doc.selection.empty();
    //    doc.all[\'tipid\'].innerHTML = document.all[\'tipid\'].innerHTML;   
        <% if session(\"textcolor\") = true then %>
        doc.msgfrm.textcolor.selectedIndex = 0;
        <% end if %>
        doc.msgfrm.ms.focus();
      <% end if %>
      return true;
    }

tag jer ikke af den ASP kode der sidder nogle steder.....

HJÆÆÆÆÆÆÆÆÆÆÆLP !!

hvad er der galt !!

Med venlig hilsen
Ulrik Jensen
ulrik@qcom.dk
Avatar billede ultik Nybegynder
22. april 2001 - 15:20 #1
den eneste kode der ikke bliver udført er focus koden, eller rettelse, det kan godt ske at den bliver udført, men focus bliver fjernet igen ihvertfald ! og det er KUN når man submitter ved hjælp af [ENTER] tasten........
Avatar billede dudal Nybegynder
22. april 2001 - 15:27 #2
Har du prøvet:

  function sendmsg()
    {
        window.parent.invisinput.document.sendform.msg.value = document.msgfrm.ms.value;
<% if session(\"textcolor\") = true then %>
          window.parent.invisinput.document.sendform.textcolor.value = document.msgfrm.textcolor.options[document.msgfrm.textcolor.selectedIndex].value;
<% end if %>
        window.parent.invisinput.document.sendform.submit();
        document.msgfrm.ms.value = \"\";
        doc.msgfrm.ms.focus();  // ********* ALtså at sætte den her?
        return false;
    }

Avatar billede jakoba Nybegynder
22. april 2001 - 15:31 #3
en onsubmit event i formen bør ikke blive aktiveret når der submittes ved hjælp af et direkte kald til formens submit metode.
Prøv at udskifte:
  window.parent.invisinput.document.sendform.submit();
med:
  window.parent.invisinput.document.sendform.submit_knap_navn.click();

mvh JakobA
Avatar billede ultik Nybegynder
22. april 2001 - 15:52 #4
dudal > har prøvet at flytte den....... mange gange.....

jakoba > jeg kan se at resten af koden bliver kørt jo...... men jeg prøver
Avatar billede olebole Juniormester
22. april 2001 - 16:59 #5
<ole>
Jeg vil gerne supplere jakoba med nogle pudsigheder, jeg selv er stødt ind i for nylig:

På et site, hvor der SKULLE være en login-knap i grafik og hvor det var et MUST, at der blev udført autocompletion af brugernavn ved login (12-ciffret kundenummer!), fandt jeg, at det ikke umiddelbart lod sig gøre.
Det viser sig nemlig, at autocomplete-funktionen gemmer navnet på onsubmit - der jo ikke bliver udført, når der submitteres med JavaScript...eller ved tryk på \'Enter\'.
Løsningen måtte være et <input type=\"image\"> (i stedet for blot et billede med link om), da et klik herpå udløser onsubmit på sædvanlig måde - og så fange et \'Enter\' i textfelterne og lade dette udføre et klik på \'billedet\'. Et <input type=\"image\"> optræder bare ikke i formens array - og kan derfor ikke kaldes - i NS4.x og IE4+.
Til gengæld kan man i NS6 og IE5+ kalde elementet med \'document.getElementById\'...ligesom det fra NS6 - men ikke i IE5+ - er med i formens array.

Det var godt nok noget lidt andet, men det illustrerer fint, hvad man kan rende ind i af problemer med form-submittering via JavaScript.

Løsningen blev iøvrigt autocomplete ved hjælp af en cookie ;)
/mvh
</bole>
Avatar billede ultik Nybegynder
22. april 2001 - 20:06 #6
jakoba, det hjalp ikke !......

olebole, hvordan præcist fanger du enter ? onKeyDown, key == 13 ??? eller hvad ?....

jeg tror nemlig dette kan være løsningen siden det virker fint når man blot trykker på send knappen !...
Avatar billede olebole Juniormester
23. april 2001 - 00:20 #7
Prøv dette her...jeg har ikke fået checket den præcise syntaks for NS6 - dette ser dog ud til at virke:

ns4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;
dom = (document.getElementById)? true:false;
function enterSubmit(e) {
    if (ns4) {
        if (e.which==13) {
            document.bla.submit();
        }
    }
    else if (ie4) {
        e=window.event;
        if (e.keyCode==13) {
            document.bla.submit();
        }
    }
    else if (dom) {
        if (e.which==0) {
            document.bla.submit();
        }
    }
}
function init() {
    document.bla.t.onkeypress = enterSubmit;
}

Din form hedder så \'bla\' og dit tekst-input hedder \'t\'.
/mvh
Avatar billede olebole Juniormester
23. april 2001 - 00:23 #8
ehhh...nåhhh ja, i stedet for \'document.bla.submit();\' skriver du selvfølgelig: \'document.bla.knapNavn.click();\'
Avatar billede ultik Nybegynder
23. april 2001 - 18:20 #9
ARGH...

dette var heller ikke løsningen ! IE opfattede nemlig at jeg trykkede enter, og submittede derfor formen som den plejede bagefter, med det resultat, at den bliver indsendt 2 gange + at fokus stadig ikke bliver der !!!
Avatar billede olebole Juniormester
24. april 2001 - 09:27 #10
Prøv, hvad der sker, hvis du returnerer false:


    else if (ie4) {
        e=window.event;
        if (e.keyCode==13) {
            document.bla.submit();
            return false;
        }
    }

/mvh
Avatar billede ultik Nybegynder
26. april 2001 - 18:11 #11
nej.... det virker heller ikke :((
Avatar billede cms Nybegynder
10. maj 2001 - 09:21 #12
hvis focus bli\'r fjernet igen, og din kode ellers bliver eksekveret/kørt, så kunne du jo bruge noget i stil med:

function setfoc(){
document.bla.submit();
window.setTimeout(\'setfoc()\', 500);
}
setfoc();
Avatar billede ultik Nybegynder
01. juli 2001 - 17:20 #13
hi guys, jeg fandt fejlen !

problemet var AT... en lille funktion i stil med

document.selection.empty();

også fjernede fokus fra feltet i IE5.5, men ikke i IE..... well, det fik jeg så rettet... ellers tak for hjælpen
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