Jag vet inte om du glömt bifoga funktionen eller missat något med copy-paste någonstans, men return validateForm(); i din onsubmit ser suspekt ut. Den förhindrar MM_validateForm från att köras, så ta bort det och prova igen.
mvh
3 svar · 1 187 visningar · startad av Donatello73
Hej, är ny på forumet.
Har ett problem. Hade en kodare som gjort ett formulär i asp för några år sedan. Och nu måste jag lägga in att tre fält skall vara tvingande.
Använder mig av dreamweaver och där kan man lägga en javascript-check på valfria fält, vilket jag har använt mig av till andra formulär. Men just detta bryr sig in om detta utan skickar iväg formuläret ändå.
Tror och hoppas att det är något enkelt som behöver göras och som någon förhoppningsvis kan hjälpa mig med.
asp-koden ser ut så här:
<%
If Request.Form("status") = "skicka" Then
' MailBodyHTML = MailBodyHTML & "<HTML>" & vbcrlf
' MailBodyHTML = MailBodyHTML & "<HEAD>" & vbcrlf
' MailBodyHTML = MailBodyHTML & "</HEAD>" & vbcrlf
' MailBodyHTML = MailBodyHTML & "<BODY MARGINHEIGHT='0' MARGINWIDTH='0' TOPMARGIN='0' BOTTOMMARGIN='0' RIGHTMARGIN='0' LEFTMARGIN='0'>" & vbcrlf
' MailBodyHTML = MailBodyHTML & vbcrlf
' MailBodyHTML = MailBodyHTML & "<TABLE WIDTH='100%' BORDER='0' CELLSPACING='0' CELLPADDING='20'><TR><TD STYLE='font-size:11px; line-height:18px; font-family:arial'>" & vbcrlf
' MailBodyHTML = MailBodyHTML & vbcrlf
' MailBodyHTML = MailBodyHTML & vbcrlf
' MailBodyHTML = MailBodyHTML & vbcrlf
' MailBodyHTML = MailBodyHTML & "<P><I>Detta utskick gjordes "& FormatDateTime(Now(),2) &", "& FormatDateTime(Now(),4) &" på begäran från IP-nummer "& Request.ServerVariables("REMOTE_ADDR") &".</I></P>" & vbcrlf
' MailBodyHTML = MailBodyHTML & vbcrlf
' MailBodyHTML = MailBodyHTML & "</TD></TR></TABLE>" & vbcrlf
' MailBodyHTML = MailBodyHTML & vbcrlf
' MailBodyHTML = MailBodyHTML & "</BODY>" & vbcrlf
' MailBodyHTML = MailBodyHTML & "</HTML>" & vbcrlf
MailBody = MailBody & vbcrlf
MailBody = MailBody & "Formulär från xxxxxxs hemsida "& SETT_Foretag &" - Information." & vbcrlf
MailBody = MailBody & vbcrlf
MailBody = MailBody & "Företagsnamn: " & Request.Form("Foretagsnamn") & vbcrlf
MailBody = MailBody & "Kontakt-namn: " & Request.Form("Kontaktnamn") & vbcrlf
MailBody = MailBody & "E-post: " & Request.Form("Epost") & vbcrlf
MailBody = MailBody & vbcrlf
MailBody = MailBody & "Vikt: " & Request.Form("vikt") & vbcrlf
MailBody = MailBody & "Längd: " & Request.Form("Langd") & vbcrlf
MailBody = MailBody & "Bredd: " & Request.Form("Bredd") & vbcrlf
MailBody = MailBody & "Höjd: " & Request.Form("Hojd") & vbcrlf
MailBody = MailBody & "Avsändare-Postnummer: " & Request.Form("AvsandarePostnummer") & vbcrlf
MailBody = MailBody & "Mottagare-Postnummer: " & Request.Form("MottagarePostnummer") & vbcrlf
MailBody = MailBody & vbcrlf
MailBody = MailBody & vbcrlf
MailBody = MailBody & "Detta utskick gjordes "& FormatDateTime(Now(),2) &", "& FormatDateTime(Now(),4) &" på begäran från IP-nummer "& Request.ServerVariables("REMOTE_ADDR") &"." & vbcrlf
MailBody = MailBody & vbcrlf
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail.xxxxxx.se"
JMail.Sender = "info@xxxxxx"
JMail.AddRecipient "info@xxxxxx"
JMail.Subject = "xxxxxx, xxxxxx"
' JMail.HTMLBody = MailBodyHTML & vbcrlf
JMail.Body = MailBody & vbcrlf
JMail.Priority = 3
JMail.Execute
Set JMail = Nothing
Response.Redirect("/xxxxxx.asp")
End if
%>
formulärkoden:
<form method="post" action="/bli-medlem.asp" name="form1" onSubmit="return validateForm();MM_validateForm('Foretagsnamn','','R','Kontaktnamn','','R','Epost','','R');return document.MM_returnValue" style="float: left">
javascriptet:
<script type="text/javascript">
function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
} }
</script>
Jag vet inte om du glömt bifoga funktionen eller missat något med copy-paste någonstans, men return validateForm(); i din onsubmit ser suspekt ut. Den förhindrar MM_validateForm från att köras, så ta bort det och prova igen.
mvh
Lysande, valideringen funkar nu!
Bockar och bugar....
Vasse! Och välkommen till wF! :bire