OK, here's the whole code. The Javascript is what's generated by the Check Form Dreamweaver extension (which has worked well for me on pages with other ASP scripts). It adds an onSubmit to the <form> tag, but it's preceded by the ASP if request.form("Submit"

... line.
<html>
<head>
<title>Add your site to our database</title>
<link href="test.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"

)>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms
[n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document);
if(!x && d.getElementById) x=d.getElementById
; return x;
}
function YY_checkform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
for (var i=1; i<args.length;i=i+4){
if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
var myObj = MM_findObj(args.replace(/\[\d+\]/ig,""
);
myV=myObj.value;
if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
if (myReq&&myObj.value.length==0){addErr=true}
if ((myV.length>0)&&(args[i+2]==1)){ //fromto
var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
} else if ((myV.length>0)&&(args[i+2]==2)){
var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$"
;if(!rx.test(myV))addErr=true;
} else if ((myV.length>0)&&(args[i+2]==3)){ // date
var myMa=args[i+1].split("#"
; var myAt=myV.match(myMa[0]);
if(myAt){
var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
var myDate=new Date(myY,myM,myD);
if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
}else{addErr=true}
} else if ((myV.length>0)&&(args[i+2]==4)){ // time
var myMa=args[i+1].split("#"
; var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
} else if (myV.length>0&&args[i+2]==5){ // check this 2
var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""
);
if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,""
];
if(!myObj1.checked){addErr=true}
} else if (myV.length>0&&args[i+2]==6){ // the same
var myObj1 = MM_findObj(args[i+1]);
if(myV!=myObj1.value){addErr=true}
}
} else
if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
var myTest = args.match(/(.*)\[(\d+)\].*/i);
var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
if (args[i+2]==2){
var myDot=false;
for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
if(!myDot){myErr+='* ' +args[i+3]+'\n'}
}
} else if (myObj.type=='checkbox'){
if(args[i+2]==1&&myObj.checked==false){addErr=true}
if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
} else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
}else if (myObj.type=='textarea'){
if(myV.length<args[i+1]){addErr=true}
}
if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
}
if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
document.MM_returnValue = (myErr=='');
}
//-->
</script>
</head>
<body>
<!--#include file="head.asp"-->
<!--#include file="menu.asp"-->
<%
if request.form("Submit"
<> "Submit" then
%>
<form action="submitsite.asp" method="POST" name="sitesubmissions" onSubmit="YY_checkform('sitesubmissions','disclaimer','#q','1','Please tick the disclaimer box','EMail','S','2','Please enter your e-mail address','SiteTitle','#q','0','Please enter site title','URL','#q','0','Please enter URL');return document.MM_returnValue"">
<table cellpadding="0" cellspacing="0">
<tr>
<td valign="top">Your Name<br>
<input name="Name" type="text" id="Name" tabindex="1">
</td>
</tr>
<tr>
<td valign="top">E-Mail Address<br>
<input name="EMail" type="text" id="EMail" tabindex="2">
</td>
</tr>
<tr>
<td valign="top">The Name/Title of Your Website<br>
<input name="SiteTitle" type="text" id="SiteTitle" tabindex="3">
</td>
</tr>
<tr>
<td valign="top">Full URL (inc <input name="URL" type="text" id="URL" tabindex="4">
</td>
</tr>
<tr>
<td valign="top">What is your site about?<br>
<textarea name="Aims" rows="5" cols="42" tabindex="5"></textarea>
</td>
</tr>
<tr>
<td valign="top">What software did you use to develop your site?<br>
<textarea rows="5" name="Software" id="Software" cols="42" tabindex="6"></textarea>
</td>
</tr>
<tr>
<td valign="top">Please provide any other information that you feel may
be relevant:<br>
<textarea rows="5" name="Info" id="Info" cols="42" tabindex="7"></textarea>
</td>
</tr>
<tr>
<td><p>
<input name="disclaimer" type="checkbox" id="disclaimer" value="checkbox" />
I have read and understand the terms and conditions.</p>
</td>
</tr>
<tr>
<td><input name="Submit" type=submit value="Submit">
<input name="reset" type=reset value="Reset">
</td>
</tr>
</table>
</form>
<%
else
strName=Request.form("Name"
strEMail=Request.form("EMail"
strSiteTitle=Request.form("SiteTitle"
strURL=Request.form("URL"
strAims=Request.form("Aims"
strSoftware=Request.form("Software"
strInfo=Request.form("Info"
strDate=Date
Set objConn = Server.CreateObject("ADODB.Connection"
ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("sitesubmissions.mdb"
objConn.Open ConnectionString
sqlQuery = "SELECT * FROM sitesubmissions"
Set objRS = Server.CreateObject("ADODB.Recordset"
objRS.Open sqlQuery, objConn, 1, 2
objRS.AddNew
objRS("Name"
=strName
objRS("EMail"
=strEMail
objRS("SiteTitle"
=strSiteTitle
objRS("URL"
=strURL
objRS("Aims"
=strAims
objRS("Software"
=strSoftware
objRS("Info"
=strInfo
objRS("Date"
=strDate
objRS.Update
objRS.Close
Set objRS = Nothing
strBody=strBody & "Thanks for submitting your site. Below is a copy of the details you submitted:" & chr(10) & chr(13)
strBody=strBody & "Name: " & strName & chr(10) & chr(13)
strBody=strBody & "EMail: " & strEMail & chr(10) & chr(13)
strBody=strBody & "Site Title: " & strSiteTitle & chr(10) & chr(13)
strBody=strBody & "URL: " & strURL & chr(10) & chr(13)
strBody=strBody & "Aims and Functions: " & strAims & chr(10) & chr(13)
strBody=strBody & "Software Used: " & strSoftware & chr(10) & chr(13)
strBody=strBody & "Further Information: " & strInfo & chr(10) & chr(13)
strBody=strBody & "Date: " & strDate & chr(10) & chr(13)
strBody=strBody & "--------------- " & chr(10) & chr(13)
Dim objCDO
Set objCDO = Server.CreateObject("CDONTS.NewMail"
objCDO.From = "test@testsite.com"
objCDO.To = "test@testsite.com"
objCDO.Subject = "Site Submitted"
objCDO.Body = strBody
objCDO.BodyFormat = 1
objCDO.MailFormat = 1
objCDO.Send
Set objCDO = Server.CreateObject("CDONTS.NewMail"
objCDO.From = "test@testsite.com"
objCDO.To = stremail
objCDO.Subject = "Site Submitted"
objCDO.Body = strBody
objCDO.BodyFormat = 1
objCDO.MailFormat = 1
objCDO.Send
Response.Write strName
Response.Write ", we have received details that you sent about:<BR><BR>"
Response.Write strSiteTitle
Response.Write ", which is located at " & strURL
Response.Write ".<BR><BR>"
Response.Write "Click any of the links to continue browsing."
end if
%>
<!--#include file="foot.asp"-->
</body>
</html>
Visit my ice hockey site at: