22. april 2001 - 15:18Der 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.....
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........
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; }
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();
<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>
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 !!!
også fjernede fokus fra feltet i IE5.5, men ikke i IE..... well, det fik jeg så rettet... ellers tak for hjælpen
Synes godt om
Ny brugerNybegynder
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.