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

表单验证问题求助,很急。。。。。。

steven1013 发布于 2007-09-03 09:38, 952 次点击
问题:
我建立了一个表单,类型text,我希望是当输入完成(就是这个表单失去焦点的时候),当鼠标到下一个表单上去的时候,马上对上个表单的输入数据合法性进行检查,以确认这个数据是否合法!
我现在已经做到的是,当这个焦点失去的时候,用onblur来触发一个网页,但是这个表单的数据无法传递到这个触发的网页上去,传递不过去,自然无法验证!
希望大家可以帮忙!怎么解决这个表单数据传递到触发的那个网页上去的问题!
先谢谢各位了!
16 回复
#2
jiushini502007-09-03 10:18

js效果没有写对啊

onblur 设置js函数change_action
代码类似:
function change_action(form){
if(!checkFrm(form)){
return false;
}else{
form.name.value=form.uid.value;
form.passwd.value=form.pwd.value;
form.action="/目标网页.asp";
form.submit();
return true;}
}

#3
tianyu1232007-09-03 11:29

文本框页面:

<script language=javascript>
function check(str)
{
form1.action="123.asp?act="+str;
form1.submit();
}
</script>
<form name=form1 method="post">
<input type=text name=text1 onblur="check(this.value);">
</form>

验证格式页面:

<%
dim a
a=request.querystring("act")
if not isnumeric(a) then
response.write"<script>alert('必须为数字!');history.go(-1);</script>"
response.end
end if
%>

#4
steven10132007-09-03 12:11

谢谢二位,我现在就去调试下,非常感谢!

#5
steven10132007-09-03 13:11

我好像调试不出来,我举个例子:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>test1</title>
</head>
<body>
<form name="myform" method="POST">
<p><input type="text" name="myinput" size="20" onblur="window.open('test2.asp?id=????????','','scrollbars=no,width=500,height=400')"></p>
<p><input type="text" name="T2" size="20"></p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
</form>
</body>
</html>
我现在要实现的是,当我的 鼠标从第一个表单myinput转到第二个表单T2的时候,把第一个表单的值传递到test2.asp这个网页的地址的?后面部分,方便我的test2.asp这个网页来提取!
我程序里的问号部分希望高手可以天起来!
大家想想办法!
谢谢先!

#6
ayue2222007-09-03 13:31
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>test1</title>
</head>
<body>
<form name="myform" method="POST">
<p><input type="text" name="myinput" size="20" onblur="window.open('test2.asp?id='this.value,'','scrollbars=no,width=500,height=400')"></p>
<p><input type="text" name="T2" size="20"></p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
</form>
</body>
</html>
#7
steven10132007-09-03 13:47

谢谢你,ayue222,但是我调试了下,好像不行啊?
这样test2.asp根本跳不出来啊!
怎么回事?
我想可能是那个单引号的问题!

#8
steven10132007-09-03 13:51
我把那个单引号去掉,可以跳出来了,但是数据仍然出不来!
http://192.168.0.13/ceshibiaodan/test2.asp?id=this.value

就是这个id后面无法绑定我刚输入的数据,只显示this.value这个东西!
头痛了!

[此贴子已经被作者于2007-9-3 14:04:36编辑过]

#9
tianyu1232007-09-03 20:34

<input type="text" name="myinput" size="20" onblur="window.open('test2.asp?

id='+this.value,scrollbars='no',width=500,height=400)">
#10
ayue2222007-09-03 21:32

冷汗。。。老是范低级错误。。
接连找了几天房子。。。累死我了。。。北京的房子真他妈贵。。。。比抢钱还划算啊~
#11
madpbpl2007-09-03 23:19

嗯,马上就要奥运会,房价估计要3000以上了,祝好运!

#12
steven10132007-09-04 08:13

非常感谢大家对我的帮助,现在问题终于解决了,tianyu123的方法是正确的,学习了……
#13
gupiao1752007-09-04 13:07
你可以看看这个,不需要服务端,客户端直接就能验证!再复杂的数据验证只需要加入正则表达就行!可以大大减轻服务器端的负荷!
<script language=javascript>
function check(str)
{
if (isNaN(str))
{
alert('不是数字!');
}
}
</script>
<form name=form1 method="post">
<input type=text name=text1 onblur="check(this.value);">
<input type=text name=text2 >
</form>
#14
steven10132007-09-04 15:19

谢谢gupiao175的帮助,我的目的是检验这个表单输入的单号是否和我数据库中的单号一样,避免重复!

#15
gupiao1752007-09-04 15:51
不客气,大家应该互相帮助的!
你说的数据验证应该也不全部都是需要连接到数据库的吧,一般情况只有用户名要求这样做.其他能在客户端验证就在客户端完成!非不得已才让他在服务端完成,这样做就没错了。
#16
virusswb2007-09-05 11:20
验证合法传递到函数就可以了,干吗要传到网页呢,多余吧
#17
steven10132007-09-05 12:15


谢谢 virusswb,我要验证的这个表单是订单号码,我是怕输入的订单号码和后台数据库中已经存在的订单号重复,所以转到另外一页进行验证!如果有更好的方法,请多多指教!谢谢!

1