首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想把结果转到首页

问我想把结果转到首页
EN

Stack Overflow用户
提问于 2014-09-03 11:25:46
回答 1查看 85关注 0票数 0

我有一段艰难的时间来解决这个问题,我是新接触经典的asp和javascript。希望有人能帮我解决这个问题。我想在main.asp上查看response.write (或结果),但每次我尝试这样做,它都会转到pass.asp (在另一个页面上) :(

这是我的代码。main.asp

==================================================================================

代码语言:javascript
复制
<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

代码语言:javascript
复制
<%
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
%>
EN

回答 1

Stack Overflow用户

发布于 2014-09-03 22:35:36

你的代码是...充其量是奇怪的。你在一个没有返回值的函数上有一个返回值,这个返回值不应该做任何事情,你使用提交按钮来检测用户是否正在注册。试着把你的代码改成这样,看看是否有帮助。

更改:

已从表单onSubmit中删除返回操作

添加了隐藏值以检查是否正在注册

将javascript设置为提交类型的表单值

编辑:添加了一个包含的饱和度,以将main和reg.asp合并到一个页面中

编辑:将表单的操作更改为main.asp

编辑:修复了一些拼写错误

编辑:已更改=为StrComp函数

编辑:忘记将id添加到隐藏值

编辑:删除了空字符串的StrComp,因为它导致了错误

Main.asp

代码语言:javascript
复制
<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

代码语言:javascript
复制
<%
  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操作实际发生之前将您传递到该页面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25635761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档