如果获取返回值。

qq_448571358 2012-08-25 02:11:21

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<html>
<head>
<script language="vbscript">
Function IDCheck(e)
IDCheck = true
e=document.getElementById("shenfenzheng1").value
If Len(e) <> 18 Then
IDCheck= "身份证号码输入错误!"
msgbox IDCheck
IDCheck = False
Exit Function
End If
if IDCheck <> false then
IDCheck= "恭喜你的身份证检测通过。"
msgbox IDCheck
IDCheck = true
Exit Function
End if
End Function
</script>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>
</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<input name="shenfenzheng1" type="text" id="shenfenzheng1">
<input type="submit" name="Submit" value="检测" onClick="IDCheck(e)">
</form>
<%
dim a1,a2
a1=request.Form("shenfenzheng1")
a2=msgbox "IDCheck" '这里不会写,获取不了IDCheck值。
if a1 <> "" and a2 = "恭喜你的身份证检测通过。" then '这里不会写,获取不了IDCheck值。
if len(a1) = 15 then
response.Write("aaaaaaaaaaaaaaaaaaa")
else
response.Write("bbbbbbbbbbbbbbbbbbb")
end if
else
end if
%>
</body>
</html>
...全文
83 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_448571358 2012-08-28
  • 打赏
  • 举报
回复
谢谢啊。
scscms太阳光 2012-08-28
  • 打赏
  • 举报
回复
不要把javascript,asp,vbscript混淆了。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>身份证验证</title>
</head>
<body>
<script type="text/javascript">
function isIdCard(arrIdCard){
var tag = false;
var sigma = 0;
var a = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 );
var w = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
for (var i = 0; i < 17; i++) {
var ai = parseInt(arrIdCard.substring(i, i + 1));
var wi = a[i];
sigma += ai * wi;
}
var number = sigma % 11;
var check_number = w[number];
if (arrIdCard.substring(17) != check_number) {
tag = false;
} else {
tag = true;
}
return tag;
}
function IDCheck(){
var i=document.getElementById("shenfenzheng1").value;
if(!isIdCard(i)){
alert("身份证错误!");
return false;
}
}
</script>
<form id="form1" name="form1" method="post" action="">
<input name="shenfenzheng1" type="text" id="shenfenzheng1" maxlength="18" onkeyup="this.value=this.value.replace(/[^\dx]/,'')">
<input type="submit" name="Submit" value="检测" onClick="return IDCheck()">
</form>
<%
dim id
id=request.form("shenfenzheng1")
if len(id)=18 then
Response.write "身份证"&id&"检测通过"
end if
%>
</body>
</html>
scscms太阳光 2012-08-28
  • 打赏
  • 举报
回复
onkeyup="this.value=this.value.replace(/[^\dx]/,'')" 表示只能输入数字与x (因为身份证最后一位可以输入x)当然这里没有做特别严格的限制,比如说只能输入一个x 为了更简单这里就只限制只要是数字与x才可以输入。
qq_448571358 2012-08-28
  • 打赏
  • 举报
回复
问题解决,结贴了,谢谢大家的关注和耐心帮助。
qq_448571358 2012-08-28
  • 打赏
  • 举报
回复
你写的javascript自己先创建了一个按钮松开事件的测试函数,

如果输入的够18位,有个问题。

如果=true,
这时点单击按钮后就轮到单击事件起作用,判断i值的测试函数就通过。
下边的判断=18成立,显示判断结果,这里正确,没有问题。

如果=false,
这时点单击按钮测试函数不通过,提示:身份证错误,没有通过。
下边的判断=18成立,也显示判断结果了,这里不正确,有问题。

我的思路是这样修正这个问题,还得加个and判断条件获取测试函数=false不执行下边的内容,

但跟我提出的问题就出来了,不知道如何获取msgbox输出值。
qq_448571358 2012-08-28
  • 打赏
  • 举报
回复
<input name="shenfenzheng1" type="text" id="shenfenzheng1" maxlength="18" onkeyup="this.value=this.value.replace(/[^\dx]/,'')">

这一段里的[^\dx]里的dx是不是表示匹配不是0-9数字和a-z字母的所有字符呢
  • 打赏
  • 举报
回复
楼上说得对。代码也可以。
自己自学的人,很容易犯这个错误,因为不知道哪些事情是重点,不知道正确的脉络,结果从根就开始跑偏了。
不过从开始最好养成严谨的习惯,这也是保证根红苗正的途径。上面的方式还不完善,后台部分必须对传递来的数据再进行内容验证才行,否则象这样的话,就存在安全上的巨大漏洞了。都说ASP不安全,其实大部分原因是ASP程序员的经验问题导致的。
傻X 2012-08-27
  • 打赏
  • 举报
回复
ASP,5年没整了,楼主,你传值验证用“问号”传值。或者存在Cookies然后读取吧
lzp4881 2012-08-25
  • 打赏
  • 举报
回复
验证程序是在客户端验证,你在服务器端当然获取不了,改在服务器端验证或者加一个服务器端验证就可以了。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧