注册 登录
编程论坛 ASP技术论坛

[求助]asp中的类型不匹配如何修改呢???

枫吹过的季节 发布于 2007-10-28 10:04, 2210 次点击
asp中的类型不匹配如何修改呢???源代码是
<!--#include file="CheckLetter.asp"-->
<html>
<style type="text/css">
<!--.STYLE2 {font-size: 12px; }-->
</style>
<head>
</head>
<body>

<table width="800" height="200" border="0" align="center" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td width="800" height="200" valign="top"><form name="form1" method="post" action="#" >
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>用户名:&nbsp;&nbsp;&nbsp;&nbsp;
<label>
<input type="text" name="Username">
</label></td>
</tr>
<tr>
<td>密码:&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
<input type="password" name="UserPwd"></td>
</tr>
<tr>
<td height="18">电子邮箱 :&nbsp;
<input type="text" name="Email"></td>
</tr>
<tr>
<td height="19"><div align="center">
<input type="submit" name="Submit" value="提交">
<input type="submit" name="Submit2" value="重置">
</div></td>
</tr>
</table>
</form>
<p align="center">  </p></td>
</tr>
</table>
</body>
<%
Username=Trim(Request.Form("Username"))
UserPwd=Request.Form("UserPwd")
Email=Request.Form("Email")
If Username="" or UserPwd=""or Email="" then
Response.Write"<script>alert('填写不完全!');history.back();</script>"
Response.End
ElseIf Not CheckLetter(Username) Then
Response.Write"<script>alert('输入的用户名没有全部是大写或小写字母!');history.back();</script>"
Response.End
ElseIf Not Numertic(UserPwd) Then
Response.Write"<script>alert('输入的密码不能为非数字!')</script>;history.back();</script>"
Response.End
ElseIf Not ISValidEmail(Email) Then
Response.Write"<script>alert('输入的邮件地址格式不正确!');history.back();</script>"
Response.End
Else
Response.Write"<center>输入正确!"
End If
%>
</html>


18 回复
#2
枫吹过的季节2007-10-28 10:06
错误类型:
Microsoft VBScript 运行时错误 (0x800A000D)
类型不匹配: '[string: "F"]'
/feng/verify.asp, 第 48 行
#3
永夜的极光2007-10-28 11:16
48行是哪行???
#4
枫吹过的季节2007-10-28 17:55
    ElseIf  Not CheckLetter(Username) Then
#5
永夜的极光2007-10-28 17:59
CheckLetter函数呢???
#6
tianyu1232007-10-28 18:01
CheckLetter()

把这个函数粘贴出来看看,对了,Username这个文本框你输入的是什么值出的错!
#7
枫吹过的季节2007-10-29 12:15
<%
Function Validate(Str)
Validate=ture
invalid=""
if InStr(str,invalid)>0 Then
Validate=False
End if
End Function
%>
<%
Function CheckLetter(str)
CheckLetter=True
Letters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i=1 to len(str)
checkletter=UCase(MId(str,i,1))
if(InStr(Letters,checkchar)<=0) then
CheckLetter=False
Exit Function
End if
Next
End Function
%>
<script language="javascript">
function checkemail()
{
var filter=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
if(!filter.test(document.MyForm.email.value))
{
window.alert("邮箱格式不正确!");
document.MyForm.email.focus();
return false;
}
return true;
}
</script>



#8
tianyu1232007-10-29 12:32

你这里好多错误啊!

首先:

<%
Function CheckLetter(str)
CheckLetter=True
Letters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i=1 to len(str)
checkletter=UCase(MId(str,i,1))
if(InStr(Letters,checkchar)<=0) then
CheckLetter=False
Exit Function
End if
Next
End Function
%>

你把文本框中的每个字符都转换成大写赋值给checkletter变量,但引用时却变成了checkchar变量

改为:

<%
Function CheckLetter(str)
CheckLetter=True
Letters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i=1 to len(str)
checkchar=UCase(MId(str,i,1))
if(InStr(Letters,checkchar)<=0) then
CheckLetter=False
Exit Function
End if
Next
End Function
%>

#9
枫吹过的季节2007-11-01 16:20
还是不行呢!!!
#10
放任一切2007-11-01 16:29
ElseIf CheckLetter(Username)=false Then
这样试试
#11
枫吹过的季节2007-11-01 16:38
你说的是那一行阿???
#12
放任一切2007-11-01 16:44
以下是引用枫吹过的季节在2007-10-28 17:55:51的发言:
ElseIf Not CheckLetter(Username) Then

就是你说的这行啊

#13
枫吹过的季节2007-11-01 16:46
不好意思你的意思是在修改那一部分呢?谢谢!!!
#14
枫吹过的季节2007-11-01 16:49
好了,实在很感谢你!谢谢!!!
#15
放任一切2007-11-01 16:50

ElseIf Not CheckLetter(Username) Then
改为
ElseIf CheckLetter(Username)=false Then

你调用函数的这句
我记得ASP里不能就NOT
你先试一下
#16
枫吹过的季节2007-11-01 16:58
可是页面只显示的是输入的不完全是大写或者小写字母,又是什么回事吗?好郁闷呢!
#17
枫吹过的季节2007-11-01 21:41
有谁呢看看阿!谢谢阿!
#18
放任一切2007-11-02 10:25

没看明白,能不能说清楚一点呢

#19
枫吹过的季节2007-11-02 13:00
就是说在前台验证的时候不管你输入的是不是大小写字母或者是数字,它都显示的是输入的不是答谢或者小写字母阿!你说是哪里出错了?
1