Avatar billede kfh Nybegynder
16. august 2001 - 16:31 Der er 11 kommentarer og
1 løsning

Hvordan kalder OnClick to funktioner/subrutine

Hej med jer

Jeg har følgende lille problem:

Jeg har en formular som kalder en JavaScript funktion for at validere det indtastet på følgende måde: onClick=\"java script:return InputValidering();\"

Efter at brugeren har indtaste i felterne i formularen - og funktionen har returneret: return true; - ønsker jeg - i OnClick at kalde en subrutine som sender en besked via email til brugeren om at alt er gået efter planen.

Hvordan kalder jeg både en JavaScript funktion og en subrutine fra OnClick?

Er der en smartere måder?

Mvh

Kfh
Avatar billede tmceu Praktikant
16. august 2001 - 17:07 #1
Hvis du lagde spørgsmålet i den rigtige kategori, får du sikkert en masse gode svar :-)

Et skud fra hoften (er ikke speciel god til JS): Hvad med at kalde subrutinen fra din funktion. D.v.s. at du kører funktionen og kalder i slutningen af den subrutinen.
Avatar billede tokelil Nybegynder
16. august 2001 - 20:43 #2
Hvis din InputValidering() laver return true, kan du så ikke bare:
onClick=\"java script: if (InputValidering()) { KaldSubrutine() };\"
Avatar billede kfh Nybegynder
16. august 2001 - 21:47 #3
Uden at være den store programmør tillader jeg mig alligevel at afvise. Det virker ikke, men ser nu fornuftigt ud....
Avatar billede kfh Nybegynder
16. august 2001 - 21:49 #4
Til tmceu

Beklager - det gik lidt hurtigt med at få det skrevet. Men det er nu faktisk
en asp. fil jeg arbejder med. Her kalder jeg en JavaScript funktion,
som bruges til at validere formularen (har de fået indtastet korrekt).
Avatar billede tokelil Nybegynder
16. august 2001 - 22:52 #5
Sker det i en form ?
Jeg laver det på denne måde:
<FORM ACTION=\"nytindlaeg.asp?forumid=<%= ForumID %>&forumnavn=<%= ForumNavn %>\" METHOD=\"POST\" NAME=\"Besked-Form\" onsubmit=\"if (!CheckForm(this)) return false;\">
Avatar billede kfh Nybegynder
17. august 2001 - 08:28 #6
Jeg kan ikke helt forstå det. Du får lige hele koden:
<%@ Language=VBScript %>
<% Option Explicit %>
<!--#include file=\"validering.asp\" -->
<!-- #include virtual=\"common/adovbs.inc\" -->

<HTML>
<HEAD>
</HEAD>
<% On Error Resume Next %>
<BODY>

<font size=4>Tilmeld kursus</font><p>

<%
    Dim connectKursusdatabase,connectTabel,foresporgsel,Kursusnummer
    Kursusnummer=Trim(Request(\"Kursusnr\"))
   
    Set connectKursusdatabase = Server.CreateObject(\"ADODB.Connection\")
    connectKursusdatabase.Open \"Kursusdatabase\"

    Set connectTabel = Server.CreateObject(\"ADODB.Recordset\")
    foresporgsel = \"SELECT * FROM T_Tilmelding_Internet\"
    connectTabel.Open foresporgsel,connectKursusdatabase,adOpenDynamic,adLockOptimistic
    connectTabel.AddNew
    connectTabel (\"Kursusnr\") = Request(\"kursusnr\")
    connectTabel (\"Kursusdeltager\") = Request(\"navn\")
    connectTabel (\"Kundenavn\") = Request(\"kunde\")
    connectTabel (\"Firmaadresse\") = Request(\"firmaadresse\")
    connectTabel (\"Postnr\") = Request(\"postnr\")
    connectTabel (\"By\") = Request(\"by\")
    connectTabel (\"Email\") = Request(\"email\")
    connectTabel.Update
%>

<form methods=\"post\" action=\"detalje.asp\" id=form1 name=FormDetalje>
<table>
<tr><td>Kursusnummer</td><td> <input type=\"text\" size=\"5\" name=\"kursusnr\" value=<%=Kursusnummer%>></td></tr>
<tr><td>Dit Navn:</td><td> <input type=\"text\" size=\"50\" name=\"navn\"></td></tr>
<tr><td>Firma</td><td> <input type=\"text\" size=\"50\" name=\"kunde\"></td></tr>
<tr><td>Firmaadresse</td><td> <input type=\"text\" size=\"50\" name=\"firmaadresse\"></td></tr>
<tr><td>Postnr</td><td> <input type=\"text\" size=\"50\" name=\"postnr\"></td></tr>
<tr><td>By</td><td> <input type=\"text\" size=\"50\" name=\"by\"></td></tr>
<tr><td>Email</td><td> <input type=\"text\" size=\"50\" name=\"email\"></td></tr>
<tr><td><input type=\"submit\" value=\"Tilmeld mig\" id=submit name=submit onClick=\"java script:return InputValidering();\"></td>
<td><input type=\"Reset\" value=\"Nulstil felter\" id=Reset1 name=Reset1></tr>
</form>
</table>
</BODY>
</HTML>



Avatar billede kfh Nybegynder
17. august 2001 - 08:32 #7
Der gives lidt flere point

Mvh

Kfh
Avatar billede tokelil Nybegynder
17. august 2001 - 12:54 #8
Du vil have dine data valideret inden de bliver sendt til det overstående script ?

Jeg forstår ikke helt... Det øverste database kald bliver da kørt alle gange du køre denne side... Skulle den ikke først kører når der er blevet trykket på submit ??

Er den kode den fil der hedder detalje.asp ?
Avatar billede kfh Nybegynder
17. august 2001 - 15:31 #9
Når der klikkes på \"submit\" kaldes InputValidering(), som er et JavaScript der ligger i filen validering.asp. Hvis denne funktion retunerer \"true\" afvikles formen - ellers ikke.

Jo, database kaldet skal først køres, når der trykkes på submit. Hvad gør jeg så, for jeg kan godt se hvad du mener?

Det er rigtigt, at filen hedder detalje.asp


Mvh

Kfh
Avatar billede tokelil Nybegynder
17. august 2001 - 16:02 #10
Er på vej på weekend, så du får lige den måde som jeg har gjort det på:

<%@ LANGUAGE = \"VBScript\" %>
<%
Option Explicit
SetLocale(1030)
Response.Expires = 0
Dim Conn, MyConn, strSQL, rs
Dim ForumID, ID, ForumNavn
Dim strNavn, strEmail, strEmne, strTekst
Dim strError
ForumID = Request.QueryString(\"forumid\")
ForumNavn = Request.QueryString(\"forumnavn\")
%>

<SCRIPT TYPE=\"text/javascript\">
function CheckForm(form) {
  if (form.Navn.value != \"\" && form.Email.value != \"\" && form.Emne.value != \"\" && form.Tekst.value != \"\") {
    alert(\'Dit svar bliver behandlet! Vent venligst...\');
    return true;
  }
  alert(\'Nogen af felterne er ikke udfyldt.\');
  return false;
}
</SCRIPT>

<%
if (Request.Form(\"Send\") <> \"\") then
  strNavn = Request.Form(\"Navn\")
  strEmail = Request.Form(\"Email\")
  strEmne = Request.Form(\"Emne\")
  strTekst = Request.Form(\"Tekst\")
  ForumID = Request.QueryString(\"forumid\")

  strSQL = \"SELECT * FROM Forum;\"
  Set rs = Server.CreateObject(\"ADODB.RecordSet\")
  %><!-- #include file=\"connect.asp\" -->
<%
  rs.Open strSQL, Conn, 1, 3
  rs.AddNew
    rs(\"ForumID\") = ForumID
    rs(\"ParentID\") = 0
    rs(\"Dato\") = Now()
    rs(\"Navn\") = strNavn
    rs(\"Email\") = strEmail
    rs(\"Emne\") = strEmne
    rs(\"Tekst\") = strTekst
  rs.Update
<!-- #include file=\"connect_close.asp\" -->
  Response.Redirect(\"visforum.asp?forumid=\"& ForumID &\"&forumnavn=\"& Request.QueryString(\"forumnavn\") )
end if
%>

<FORM ACTION=\"nytindlaeg.asp?forumid=<%= ForumID %>&forumnavn=<%= ForumNavn %>\" METHOD=\"POST\" NAME=\"Besked-Form\" onsubmit=\"if (!CheckForm(this)) return false;\">
  <TABLE BORDER=\"0\">
  <tr>
    <td><b>Opret indlæg:</b></td>
  </tr>
  <TR>
    <TD><div style=\'font-size:8pt; font-weight:bold\'>Navn</div></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE=\"text\" VALUE=\"<%= strNavn %>\" SIZE=\"40\" MAXLENGTH=\"255\" NAME=\"Navn\"></TD>
  </TR>
  <TR>
    <TD><div style=\'font-size:8pt; font-weight:bold\'>Email</div></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE=\"text\" VALUE=\"<%= strEmail %>\" SIZE=\"40\" MAXLENGTH=\"255\" NAME=\"Email\"></TD>
  </TR>
  <TR>
    <TD><div style=\'font-size:8pt; font-weight:bold\'>Emne</div></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE=\"text\" VALUE=\"<%= strEmne %>\" SIZE=\"60\" MAXLENGTH=\"255\" NAME=\"Emne\"></TD>
  </TR>
  <TR>
    <TD><div style=\'font-size:8pt; font-weight:bold\'>Tekst</div></TD>
  </TR>
  <TR>
    <TD><TEXTAREA WRAP=\"physical\" ROWS=\"6\" COLS=\"66\" NAME=\"Tekst\"><%= strTekst %></TEXTAREA></TD>
  </TR>
  </TABLE>
  <INPUT TYPE=\"submit\" VALUE=\"Indsend\" NAME=\"Send\">
</FORM>


Håber du finder ud af det... For jeg er først tilbage engang søndag.
Avatar billede kfh Nybegynder
19. august 2001 - 15:06 #11
Det er da også meget mere fornuftigt at tage på week-end!

Det er måske nok lidt vildt, at du får 100 point for dette spg. Men - det har altså været en stor hjælp så tak for det....

Kfh

Avatar billede tokelil Nybegynder
19. august 2001 - 18:55 #12
Mange tak for det... :-) Er glad for at jeg kunne hjælpe!
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
Kurser inden for grundlæggende programmering

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