主题:  问斑竹一个有关vbscript的问题

china007

职务:普通成员
等级:1
金币:0.0
发贴:3
注册:2001/11/13 10:33:37
#12001/11/13 11:01:09
我的问题如下:
1、原文说onsubmit="return validate()"必须有return,否则的话无论validate返回什么
值,表单都会被提交,但根据我的实践,去掉return,对程序无影响。为何?
2、此外,如果要加return的话,是为什么,vbscript中有何规定?
3、把num=false name=false去掉对程序也无影响,为何原文要加上,初值=true可以吗?
4、我想找有关脚本对象模型的资料,不知网上那里有,微软的网站上好象找不到,
vbscript教程中也没有,请告知?

附源程序如下:



验证表单






请输入姓名和电话号码


姓    名:


电话号码: value="(025)-xxxxxxx" onchange='checknum(text2.value)'>


    











darkvn

职务:普通成员
等级:1
金币:1.0
发贴:222
注册:2001/11/12 18:23:41
#22001/11/14 5:21:34
兄弟你运气不好,我刚刚给你打了一篇几百字的帖子回你的问题可惜提交的时候说我用户名密码错误?
可能打的时间太长,超时了。

只好简单点跟你说啦!

一般的:
onsubmit="return true" 会执行浏览器默认行为。(既提交)
onsubmit="return false" 不会执行浏览器默认行为。(不提交)
不指定return的值则也执行默认行为。(提交)

所以对于你的第一个问题,我也有疑问。
onsubmit="validate()"这样写是毫无意义的。因为虽然提交时执行了合法性检测,但不管检测结果如何,
都将被提交。

第3个问题,你肯定没有影响吗?我肯定是有影响的。你可以试试不输入任何内容就提交。
看form里的代码有这两处
onchange='checkname(text1.value)'
onchange='checknum(text2.value)'
也就是说,只有当你改变输入框里的内容时才会进行这个输入框的合法检测。
如果前面没有赋初值,num,name一开始的值不确定。有可能都是true。
那么当你直接提交时,执行checknum()检测时就会有可能返回错误的true。
也就是你不写任何内容也可以提交了。
如果按你说的,吧false改为true就肯定会出现这个问题!

最后一个问题,资料msdn上肯定有。你找找dhtml。

答题完毕,给多少分?



china007

职务:普通成员
等级:1
金币:0.0
发贴:3
注册:2001/11/13 10:33:37
#32001/11/14 20:54:21
[color=Red]高手出马,一个顶两,虽然回答的不是很全,但我很感谢。
综合评分:95



helmet

职务:版主
等级:4
金币:10.0
发贴:1559
注册:2004/1/30 15:59:27
#42001/11/14 22:56:47
name和mun的初始值全为true,那是坚决不行地!
什么也不填,表单就能提交。
因为如果我们不改动输入框里的内容,就不能触发onchange
事件,结果到了最后的validate() 的判断, name和mun全是true。这当然不行。


判断表单输入的原理是这样的:
首先令name和mun全为false,这样再根据你的输入框的内容正确与否来使之变为ture。然后才能判断提交还是不提交。

编辑历史:[这消息被deathcult编辑过(编辑时间2001-11-14 23:00:38)]