Avatar billede mads_jac Nybegynder
22. august 2001 - 13:18 Der er 24 kommentarer og
2 løsninger

Event handling

Hej.

Jeg har et problem med, at jeg ikke kan komme til form eller submit tagget i en formular. Derfor må jeg benytte en event-handler på en anden måde end ellers.

Koden:

<SCRIPT language=vbscript>
function form1_onsubmit()
if noget then
  form1_onsubmit = true
else
  form1_onsubmit = false
end if
end function
</SCRIPT>

- virker på den måde jeg vil have. Men sitet understøtter version 4 browsere, også NS og den kan ikke læse vbscript.

Spørgsmålet er så om nogen kan oversætte ovenstående til funktionel javascript som tilmed virker i alle vers. 4 browsere.

Mads
Avatar billede nute Nybegynder
22. august 2001 - 13:21 #1
<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">
<!--
function form1_onsubmit()
if(noget){
  return true;
}
return false;
//-->
</SCRIPT>
Avatar billede mads_jac Nybegynder
22. august 2001 - 13:29 #2
Nix, det virker ikke.

Prøver nu med koden:

<SCRIPT language=\"JavaScript\" TYPE=\"text/javascript\">
function form1_onsubmit(){
    return false;
}
</SCRIPT>

- men den submit\'er alligevel.

Mads
Avatar billede nute Nybegynder
22. august 2001 - 13:34 #3
det kommer an på flere ting. Hvordan kaller du metoden ? hva er \'noget\' ?
Avatar billede mads_jac Nybegynder
22. august 2001 - 13:36 #4
\"noget\" bliver en boolsk variabel, men er endnu ikke implementeret.

Mads
Avatar billede roenving Novice
22. august 2001 - 13:37 #5
Du skal kalde din form1_onsubmit-funktion explicit fra onSubmit-event\'en:

<Body ... onSubmit=\'form1_onsubmit();\'>

hth
jes
Avatar billede mads_jac Nybegynder
22. august 2001 - 13:40 #6
Hej Jes.

Hmm, det er lidt svært at forklare hvorfor, men jeg har ikke adgang til alle de tags. Hverken <body>, <form ...> eller <input type=submit...>

Til gengæld kan jeg skrive et script, der venter til der sker noget (se åbningsspørgsmålet) og så bliver handlingen derefter.

Det er min situation.

Mads
Avatar billede mads_jac Nybegynder
22. august 2001 - 14:08 #7
Øv, mangler stadig svar. Her er hele koden. Nu har jeg lavet den med vbscript, men skulle gerne bruge den med java script:

<HTML>
<HEAD>
</HEAD>
<BODY>


<form action=\"subm.asp\" method=post name=\"form1\">
<input name=tekst type=text size=30>
<input type=hidden name=usyn value=\"test\">
<input type=submit value=Klik name=send>
</form>

<a href=\"#\" onClick=\"see(\'http://pol.dk\')\">Åbn vindue</a>

<!--<SCRIPT language=\"JavaScript\" TYPE=\"text/javascript\">
function form1_onsubmit(){
    return false;
}
</SCRIPT>-->
<SCRIPT LANGUAGE=vbscript>
<!--
Dim Seen, Time
Dim StartTime, EndTime
Seen = false

function form1_onsubmit()
    if Seen then
        document.form1.usyn.value = cstr(setTime(false))
        form1_onsubmit = true
    else
        form1_onsubmit = false
    end if
end function

sub see(link)
    Seen = true
    setTime true
    window.open link,\"\",\"\"
end sub

function setTime(start)
    if start then
        StartTime = timer
    else
        EndTime = timer
        setTime = (EndTime-StartTime)
    end if
end function
-->
</SCRIPT>

</BODY>
</HTML>


Mads
Avatar billede nute Nybegynder
22. august 2001 - 14:17 #8
hvis jeg forstår deg rett:

du har ikke mulighet til å omskrive fx ditt <form> tag, men du vil legge til et script i koden som fanger selve submit\'en til formularet.

Hvis dette er tilfelle, så kan jeg si at det ikke finnes en event som fanger submit (på samme måte som en event kan fange et tastetrykk). For å kunne fange submit\'en av formularet, så er du *nødt* til å bruke attributten \'onSubmit=\"\"\' i ditt <form> tag

/nute
Avatar billede mads_jac Nybegynder
22. august 2001 - 14:19 #9
Du forstår mig ret, men det findes i vbscript?

mads
Avatar billede nute Nybegynder
22. august 2001 - 14:21 #10
les hva jeg skriver:

*For å kunne fange submit\'en av formularet, så er du *nødt* til å bruke attributten \'onSubmit=\"\"\' i ditt <form> tag*

/nute
Avatar billede mads_jac Nybegynder
22. august 2001 - 14:25 #11
Ok, jeg formulerer mig mere klart.

Kan det passe, at det kan lade sig gøre i vbscript og ikke i javascript?

Er ellers normalt tilhænger af sidstnævnte

Mads
Avatar billede nute Nybegynder
22. august 2001 - 14:33 #12
jeg kan ikke skrive det klarere enn det jeg har gjort:

*For å kunne fange submit\'en av formularet, så er du *nødt* til å bruke attributten \'onSubmit=\"\"\' i ditt <form> tag*

Med andre ord:

Du kan *ikke* fange en \"onSubmit\" (på klienten) med hverken VBScript, JScript eller Javascript UTEN å benytte attributten \'onSubmit=\"\"\' i ditt <form> tag !!!

Igjen med andre ord:

For å kunne fange den \"event\" som du ønske (som teknisk sett ikke er en event), så er du nødt til å \"fysisk\" skrive onSubmit=\"[noe JavaScript];\" i ditt <form> tag sånn at det kommer til å se fx sånn ut:

<form name=\"form\" method=\"post\" action=\"\" onSubmit=\"return form1_onsubmit();\">

Jeg kan ikke forklare det mer presis enn dette, så jeg håper du forstår det denne gang...

/nute
Avatar billede mads_jac Nybegynder
22. august 2001 - 14:38 #13
Hej Nute

Det du skriver er forkert. Det VIRKER i vbscript som jeg har skrevet fra starten.

Prøv selv at implementere ovenstående kode fra indlæg kl 14:08:04 og du kan se jeg har ret.

Jeg skal bare have oversat koden til javascript.

Mads
Avatar billede nute Nybegynder
22. august 2001 - 14:47 #14
oki...du har faktisk rett :-) (så lærte jeg noe nytt idag også :-) ). Men så omskriver jeg bare disse linjene:

\"Med andre ord:

Du kan *ikke* fange en \"onSubmit\" (på klienten) med hverken VBScript, JScript eller Javascript UTEN å benytte attributten \'onSubmit=\"\"\' i ditt <form> tag !!! \"

Til dette:

\"Med andre ord:

Du kan *ikke* fange en \"onSubmit\" (på klienten) med Javascript UTEN å benytte attributten \'onSubmit=\"\"\' i ditt <form> tag !!! \"

:-)



Avatar billede mads_jac Nybegynder
22. august 2001 - 14:54 #15
Hej Nute.

Du har lige lært noget nyt om vbscript. Jeg kan ikke uden videre godtage din forklaring.

Mads
Avatar billede nute Nybegynder
22. august 2001 - 15:07 #16
hvorfor kan du ikke godta forklaringen ? Les selv her:

http://developer.netscape.com/docs/manuals/js/client/jsref/handlers.htm

Hvorfor er du nødt til å skrive JavaScript istedenfor VBScript ?

/nute
Avatar billede roenving Novice
22. august 2001 - 15:18 #17
Men hvad med at sætte den som ny metode på formen -- kan ikke gennemskue om det \'bare\' virker at sætte attributten onSubmit (det er jo egentlig en slags event) ...

Prøv på en linje før din function form1_ ...

documnet.forms.form1.setAttribute(\'onSubmit\', \'form1_onsubmit();\');

Det er et forsøg værd, men der udstedes ingen garantier -- for mig ser det lidt så\'n <sniff, sniff>

hth
jes
Avatar billede roenving Novice
22. august 2001 - 15:24 #18
document ... sæ\'fø\'li\'·}
Avatar billede olebole Juniormester
23. august 2001 - 03:04 #19
<ole>
roenving >> den tror jeg ikke holder i NS4.x  :)

Til gengæld må man kunne lave noget event-capturing på dokumentets onmousedown - og så aftaste event.srcElement.value i IE og mon ikke det er e.target.value i NS...(?) Hvis denne værdi er det samme som submit-knappens tekst, ved vi, formen er ved at blive fyret af.
Advarsel: Det er ganske utestet, men måske noget at arbejde videre med  :)
/mvh
</bole>
Avatar billede olebole Juniormester
23. august 2001 - 03:15 #20
Ehhhhhh.....pssssst, nute:

<html>
<head>
<script language=\"JavaScript\">
function visNute() {
  alert(\"Lad helan gå...DET VIRKER...!!!\")
}
</script>
</head>
<body>

<form name=\"f\">
<input type=\"text\">
<input type=\"submit\" value=\"send\">
</form>

<a href=\"#\" onclick=\"document.f.onsubmit=visNute;\">Se selv nute</a>

</body>
</html>

=o))
Avatar billede olebole Juniormester
23. august 2001 - 03:24 #21
...om så man kan sætte onsubmit-handleren på denne måde i NS4.x, ved jeg ikke. Jeg sidder ikke på min egen maskine, så jeg har ikke en NS at teste i. Men jeg tror det  :)
/mvh
Avatar billede mads_jac Nybegynder
23. august 2001 - 09:23 #22
Hej Ole.

Jeg har nu prøvet med:

function document.onmousedown(){
    var eSrc=window.event.srcElement;
    alert(eSrc.value);
}

- og også med onclick. Det virker fint i IE - får submitknappens value, men NS fejler når der er et punktum i funktionsnavnet. Det er den eneste måde at lave event-capturing jeg kender. Er der andre?

mads
Avatar billede jakoba Nybegynder
23. august 2001 - 11:11 #23
I javascript kan du ommøblere din <form kommando efter den er skrevet:

<SCRIPT language=javascript>

function form1_onsubmit() {
  var frm = document.form1
  // udregn  noget
  if ( noget ) then
    return true
  else
    return false;
}; //end form1_insubmit()

window.onload = new function( \"document.form1.onSubmit=form1_onsubmit\" );
                // eller tilføj sætningen som onload i body.
                // pas på ikke at miste onload aktivitet fra andre scripts.

</SCRIPT>

mvh JakobA
Avatar billede jakoba Nybegynder
23. august 2001 - 11:23 #24
Undskyld, det har olebole jo allerede sagt.
Avatar billede nute Nybegynder
23. august 2001 - 13:18 #25
olebole >> din posting @ 23/08 2001 03:15:49  fungerer fint i min NS4.72. Takker for irettesettelsen :-) Jeg har lært mye idag... ;-)
Avatar billede olebole Juniormester
26. december 2001 - 17:04 #26
mads_jac >> Man har *aldrig* et punktum i et funktionsnavn  ;o)

nute >> Jamen, det er da dejligt at høre!
Ho Ho Ho ...så var der da også lidt i sækken til dig i år  *<|:o)
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