我有一段艰难的时间来解决这个问题,我是新接触经典的asp和javascript。希望有人能帮我解决这个问题。我想在main.asp上查看response.write (或结果),但每次我尝试这样做,它都会转到pass.asp (在另一个页面上) :(
这是我的代码。main.asp
==================================================================================
<html>
<head>
<script>
function validate() {
document.getElementById("RegDiv").innerHTML =pass.asp;
}
</script>
<style>
#RegDiv {
color:blue;
}
</style>
</head>
<form name="RegForm" action="reg.asp" method="post" onsubmit="return validate();" />
<table border="1">
<tr><td>First Name:</td>
<td><input type="text" name="fname"></td></tr>
<tr><td>last Name:</td>
<td><input type="text" name="lname"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td>
<tr><td>Username:</td><td><input type="text" name="user"></td></tr>
<tr><td>Password:</td><td><input type="password" name="pass"></td>
<tr><td colspan="2"> <input type="submit" name="Submit" value="Register"></td></tr>
</table>`</form>
<div id="RegDiv"></div>
</html>这是我的reg.asp
<%
fname = Request.Form("fname")
lname = Request.Form("lname")
Email = Request.Form("email")
Username = Request.Form("user")
Password = Request.Form("pass")
getSub = Request.Form("Submit")
if getSub="Register" then
Dim goby
goby=0
if len(Email)<= 5 then
goby=1
end if
if Instr(1, Email, "@", 1) <2 then
goby=1
else
if Instr(1, Email, ".", 1) <4 then
goby=1
end if
end if
if fname="" then
response.write("Please provide your first name")
elseif lname="" then
response.write("Please provide your last name")
elseif Email="" then
response.write("Please provide your email")
elseif goby<>0 then
response.write("<span style='#F00'>Please provide a real email address!</span>")
elseif Username
response.write("Please provide your Username")
elseif Password="" then
response.write("Please provide your Password")
else
response.write("Your form was processed successfully")
end if
end if
%>发布于 2014-09-03 22:35:36
你的代码是...充其量是奇怪的。你在一个没有返回值的函数上有一个返回值,这个返回值不应该做任何事情,你使用提交按钮来检测用户是否正在注册。试着把你的代码改成这样,看看是否有帮助。
更改:
已从表单onSubmit中删除返回操作
添加了隐藏值以检查是否正在注册
将javascript设置为提交类型的表单值
编辑:添加了一个包含的饱和度,以将main和reg.asp合并到一个页面中
编辑:将表单的操作更改为main.asp
编辑:修复了一些拼写错误
编辑:已更改=为StrComp函数
编辑:忘记将id添加到隐藏值
编辑:删除了空字符串的StrComp,因为它导致了错误
Main.asp
<html>
<head>
<script>
function validate() {
// removed as it will happen and then user will be sent to the next page
// so the user will never see it
//document.getElementById("RegDiv").innerHTML =pass.asp;
document.getElementById('subtype').value = "Register";
}
</script>
<style>
#RegDiv {
color:blue;
}
</style>
</head>
<!--#include virtual="reg.asp"-->
<form name="RegForm" action="main.asp" method="post" onsubmit="validate();" />
<input type="hidden" name="subtype" id="subtype" value="">
<table border="1">
<tr><td>First Name:</td>
<td><input type="text" name="fname"></td></tr>
<tr><td>last Name:</td>
<td><input type="text" name="lname"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td>
<tr><td>Username:</td><td><input type="text" name="user"></td></tr>
<tr><td>Password:</td><td><input type="password" name="pass"></td>
<tr><td colspan="2"> <input type="submit" name="Submit" value="Register"></td></tr>
</table>`</form>
<div id="RegDiv"></div>
</html>reg.asp
<%
fname = Request.Form("fname")
lname = Request.Form("lname")
Email = Request.Form("email")
Username = Request.Form("user")
Password = Request.Form("pass")
getSub = Request.Form("subtype")
if StrComp(getSub,"Register", 1)+1 then
Dim goby
goby=0
if len(Email)<= 5 then
goby=1
end if
if Instr(1, Email, "@", 1) <2 then
goby=1
else
if Instr(1, Email, ".", 1) <4 then
goby=1
end if
end if
if fname ="" OR fname = vbNullString then
response.write("Please provide your first name")
ElseIf lname="" OR lname=vbNullString then
response.write("Please provide your last name")
ElseIf Email="" OR Email=vbNullString then
response.write("Please provide your email")
ElseIf goby<>0 then
response.write("<span style='#F00'>Please provide a real email address!</span>")
ElseIf Username="" OR Username=vbNullString then
response.write("Please provide your Username")
ElseIf Password="" OR Password=vbNullString then
response.write("Please provide your Password")
else
response.write("Your form was processed successfully")
end if
end if
%>我认为破坏原始代码的主要原因是JavaScript返回函数。因为pass.asp两边没有引号,所以函数很可能将其作为需要生成的返回值,并在post操作实际发生之前将您传递到该页面。
https://stackoverflow.com/questions/25635761
复制相似问题