Avatar billede kartolux Nybegynder
26. november 2001 - 09:35 Der er 12 kommentarer og
1 løsning

Funktions-kald med alert inden submit af form

Jeg har en form, som hedder:

<form name=\"sending\" method=\"POST\" action=\"bestillingskuponmail.asp?articleID=<% = Request.Querystring( \"articleID\" ) %>\" target=\"_self\">

Den submittes med:

<input type=\"submit\" value=\"Til udskrift / forsendelse\" name=\"sending\" class=\"button\">

Hvordan ændrer jeg min submit, så der INDEN formen  sendes kaldes en funktion, der hedder \"Validate\"

Validate funktionen må også gerne laves: Den laver i dette eksperiment blot en alert (Hvis intet er indtastet i feltet Kupon1Antal): \"Formularen skal udfyldes!\" med en ok knap og alerten lukkes. Hvis feltet Kupon1Antal indeholder noget, submittes formen.

Er det en vild og utænkelig funktion???  :o)
Avatar billede nute Nybegynder
26. november 2001 - 09:38 #1
dette skal gjøres i Javascript, ikke ASP...du skal bare legge eventhandleren \'onsubmit\' i ditt formtag:

<form name=\"sending\" method=\"POST\" action=\"bestillingskuponmail.asp?articleID=<% = Request.Querystring( \"articleID\" ) %>\" target=\"_self\" onsubmit=\"return validate();\">

Avatar billede juggalo Nybegynder
26. november 2001 - 09:38 #2
Her er et forslag:

Indsæt oppe i <head>

<script language=Javascript>
function checkformular()
{
  var st=document.form.overskrift.value.toString()
  if (st.length==0) {
    alert(\"Du skal skrive en overskrift\")
    return false
  }
  st=document.form.besked.value.toString()
  if (st.length==0) {
    alert(\"Du skal skrive en besked\")
    return false
  }
}
</script>

og indsæt i nede i body\'en (form\'en)

<form name=form method=POST action=update_thread.asp onsubmit=\'return checkformular()\'>
Avatar billede juggalo Nybegynder
26. november 2001 - 09:39 #3
de 2 formfelter der checkes på hedder hhv. overskrift og besked
Avatar billede nute Nybegynder
26. november 2001 - 09:42 #4
juggalo >> det er ikke behov for din toString() metode. Value returnerer alltid en String, så den er fullstendig overflødig. Du mangler også å returnere true hvis alt går godt...

<script language=Javascript>
function checkformular()
{
  var st=document.form.overskrift.value;
  if (st.length==0) {
    alert(\"Du skal skrive en overskrift\");
    return false;
  }
  st=document.form.besked.value;
  if (st.length==0) {
    alert(\"Du skal skrive en besked\");
    return false;
  }
  return true;
}
</script>

/nute
Avatar billede kartolux Nybegynder
26. november 2001 - 09:44 #5
Tak for ideen med javascript, men jeg har en masse beregninger, som jeg selv kun kan skrive i asp. Derfor vil jeg helst have en vbscript/asp funktion, der kaldes inden submit.

Jeg kender ikke syntaxen i javascript :0)
Avatar billede nute Nybegynder
26. november 2001 - 09:51 #6
hvis du skal få en alert, er du nødt til å benytte clientside scripting. du kan saktens benytte vbscript til clientside scripting, men det vil kun forstås av IE
Avatar billede juggalo Nybegynder
26. november 2001 - 09:53 #7
Nute> Jeg ved godt at tostring-metoden ikke er nødvendig. Jeg ved også at funktionen virker fint uden return true;
Avatar billede kartolux Nybegynder
26. november 2001 - 09:56 #8
nute > Jeg accepterer, hvis funktionen kun fungerer i IE. Men hvad sker der så, hvis folk bruger Netscape? Kommer der bare en fejlmeddelelse?
Avatar billede nute Nybegynder
26. november 2001 - 10:02 #9
juggalo >> \"Jeg ved også at funktionen virker fint uden return true;\"...sant nok...men det er grim kodeskikk ;-)

kartolux >> så vil det ikke skje \"en skid\". men hva er det du skal validere ? skal du vvalidere opp mot en database ? eller skal du bare validere om formelementene inneholder noe tekst ?
Avatar billede kartolux Nybegynder
26. november 2001 - 10:11 #10
Jeg skal validere en del forskelligt ud fra nogle givne variabler, som er defineret på siden, når den vises. Der er ikke tale om at hente noget fra en database.

Et eksempel (i asp syntax):

If not Len(Pris1,\"á\") = 0 Then Type =\"x\"
If Type =\"x\" And Kupon1Antal<>\"x\" Then (Her skal min alert komme med: Du har indtastet en ulovlig værdi i kuponens øverste linje. Du kan kun indtaste et x\"
End if

If Type = \"\" And Isnumeric(Kupon1Antal) = False Then (Popup med: Du kan kun skrive tal i den øverste linje\"

Osv...og det er for svært for mig i javascript....
Avatar billede juggalo Nybegynder
26. november 2001 - 10:43 #11
nute> Jeg kan sagtens leve med grim kodeskik ;)
Avatar billede nute Nybegynder
26. november 2001 - 10:46 #12
juggalo >> det kan ikke jeg ;-)
Avatar billede kartolux Nybegynder
16. maj 2002 - 22:26 #13
Lukker - det gik i sig selv...
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