Avatar billede jokkejensen Novice
09. januar 2007 - 19:15 Der er 8 kommentarer og
1 løsning

Sætte onsubmit event fra extern JS fil

Hej.

Jeg vil gerne undgå at have noget JS blandet sammen med mit markup, og jeg går efter at alt skal ligge eksternt.

Men jeg syntes ikke rigtigt jeg kan få onsubmit eventen på en form sat gennem JS..

Nogen der har et bud ?

/JJ
Avatar billede elskermad.dk Nybegynder
09. januar 2007 - 20:27 #1
function addonloadevent(func) {
    var oldonload = window.onload;
   
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
    else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
            }
           
            func();
        }
    }
}

addonloadevent(function()alert('hej verden')});
Avatar billede mclemens Nybegynder
09. januar 2007 - 20:30 #2
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta

http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title><meta name="robots"

content="index, follow">

<script type="text/javascript" src="js.js"></script>

</head><body>
<form name="formnavn" action="1.html" method="get">
<input type="text" name="test" value="test">
<input type="submit" value="ok">
</form>
</body></html>


js.js

window.onload=function(){
document.formnavn.onsubmit=function(){return valider();};
}

function valider(){
alert("Virker");
return false;
}
Avatar billede jokkejensen Novice
09. januar 2007 - 21:13 #3
kigger lige på det i morgen, syntes bare jeg havde forsøgt med din mclemens..

elskermad, det var en onsubmit, ikke en crossbrowser window.onload event.

Takker for Jeres input
Avatar billede elskermad.dk Nybegynder
09. januar 2007 - 21:31 #4
argh ;) der kan man bare se hehe... tror jeg skal gå i seng!
Avatar billede elskermad.dk Nybegynder
09. januar 2007 - 21:32 #5
mclemens, var det ikke det vi havde fundet ud af at man ikke kan lave return på den måde? at man skulle bruge den der event-afbryder eller hvad den hed
Avatar billede mclemens Nybegynder
09. januar 2007 - 21:37 #6
Elskermad.dk Det kan du sagtens i html standard handlers, det var problemet med
xhtml event'en med handlers og FF ... ved xhtml js script er det vist sådan her:
(med den event afbryder fra windcape http://www.eksperten.dk/spm/752882 )

js.js

if(window.addEventListener)window.addEventListener("load", wload, false);
else if(window.attachEvent)window.attachEvent("onload", wload);

function wload(){

  f=document.formnavn;
  if(f.addEventListener)f.addEventListener("submit", function(e){return valider(e);}, false);
  else if(f.attachEvent)f.attachEvent("onsubmit", function(e){return valider(e);});

}

function valider(e){

alert("Virker");

if(e && e.preventDefault)e.preventDefault();
return false;

}
Avatar billede jokkejensen Novice
09. februar 2007 - 10:29 #7
mcclemens, beklager den lange vente tid..

Men smider du lige et svar
Avatar billede mclemens Nybegynder
09. februar 2007 - 11:21 #8
Kommer her :)
Avatar billede mclemens Nybegynder
12. februar 2007 - 10:45 #9
Og tak for point :)
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