VBScript简单验证的问题

juleik 2005-09-27 08:31:13
代码如下:
<HTML>
<HEAD><TITLE>简单验证</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Validate
Dim TheForm
Set TheForm = Document.forms("ValidForm")
If IsNumeric(TheForm.Text1.Value) Then
If TheForm.Text1.Value < 1 Or TheForm.Text1.Value > 10 Then
MsgBox "请输入一个 1 到 10 之间的数字。"
Else
MsgBox "谢谢。"
End If
Else
MsgBox "请输入一个数字。"
End If
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>简单验证</H3><HR>
<form id="ValidForm" action="nothing.asp" onsubmit="Validate(); return false;" language="VBScript">
请输入一个 1 到 10 之间的数字:
<input name="Text1" TYPE="TEXT" class='9v'>
<input name="Submit" TYPE="Submit" VALUE="提交">
</form>
</BODY>
</HTML>

运行时Validate()不能起作用,如果改为<input name="Submit" TYPE="Submit" VALUE="提交" onclick="Validate()">则即时输入错误数据仍然能跳到nothing.asp。不知道该怎么写!
...全文
201 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xilo 2005-09-30
  • 打赏
  • 举报
回复
哈哈,一般不用vbs在客户端的,因为只有IE支持
jspadmin 2005-09-30
  • 打赏
  • 举报
回复
ding
stefli 2005-09-30
  • 打赏
  • 举报
回复
把Action设置和Submit 放到函数中..

<HTML>
<HEAD><TITLE>简单验证</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Validate
Dim TheForm
Set TheForm = Document.forms("ValidForm")
If IsNumeric(TheForm.Text1.Value) Then
If TheForm.Text1.Value < 1 Or TheForm.Text1.Value > 10 Then
MsgBox "请输入一个 1 到 10 之间的数字。"
Else
MsgBox "谢谢。"
TheForm.Action = "nothing.asp"
TheForm.Submit
End If
Else
MsgBox "请输入一个数字。"
End If
End Sub
//-->
</SCRIPT>
</HEAD>
<BODY>
<H3>简单验证</H3><HR>
<form id="ValidForm" onsubmit="VBS:Validate()" method="POST">
请输入一个 1 到 10 之间的数字:
<input name="Text1" TYPE="TEXT" class='9v'>
<input name="Submit" TYPE="Submit" VALUE="提交">
</form>
</BODY>
</HTML>
juleik 2005-09-30
  • 打赏
  • 举报
回复
谢谢上面的各位!
celevantis 2005-09-28
  • 打赏
  • 举报
回复
学习
zwrtv 2005-09-28
  • 打赏
  • 举报
回复
学习下
doveph 2005-09-28
  • 打赏
  • 举报
回复
呵,还从未这样写过验证。。。
是是非非 2005-09-28
  • 打赏
  • 举报
回复
还有 VBScript不支持分号“;”
VBScript里面要把多个语句写在一行使用冒号“:”分隔 ,不是分号
是是非非 2005-09-28
  • 打赏
  • 举报
回复
VBScript不支持 Return语句

所以你要在 Validate 函数里面禁止事件的返回值和事件冒泡

Window.Event.ReturnValue=False
Window.Event.CancelBubble=True

=============修改后代码如下===========

<HTML>
<HEAD><TITLE>简单验证</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Validate
Window.event.ReturnValue=False
Window.event.CancelBubble=True
Dim TheForm
Set TheForm = Document.forms("ValidForm")
If IsNumeric(TheForm.Text1.Value) Then
If TheForm.Text1.Value < 1 Or TheForm.Text1.Value > 10 Then
MsgBox "请输入一个 1 到 10 之间的数字。"
Exit Sub
Else
MsgBox "谢谢。"
Exit Sub
End If
Else
MsgBox "请输入一个数字。"
End If
Window.Event.RetrunValue=True
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>简单验证</H3><HR>
<form id="ValidForm" action="nothing.asp" onsubmit="VBScript:Validate()">
请输入一个 1 到 10 之间的数字:
<input name="Text1" TYPE="TEXT" class='9v'>
<input name="Submit" TYPE="Submit" VALUE="提交">
</form>
</BODY>
</HTML>
juleik 2005-09-27
  • 打赏
  • 举报
回复
不对啊,Validate()是可以条对话框出来,但还是即使输入错误数据仍然能跳到nothing.asp,正常情况应该是输入错误数据就弹出对话框警告,然后仍然是原来的htm页面而不是执行action="nothing.asp"。
超级大笨狼 2005-09-27
  • 打赏
  • 举报
回复
onclick="vbs:Validate"

因为web表单默认的是js所以vbs一定要写上语言标示。

4,009

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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