如何在VBScript中用for语句来缩短以下程序代码?

DeliverGuy 2004-01-26 11:48:14
<script language="VBScript">
sub checkupper()

//其中itinerary_n是文本输入框的名字

form1.itinerary_1.value = UCase(form1.itinerary_1.value)
form1.itinerary_2.value = UCase(form1.itinerary_2.value)
form1.itinerary_3.value = UCase(form1.itinerary_3.value)
form1.itinerary_4.value = UCase(form1.itinerary_4.value)
form1.itinerary_5.value = UCase(form1.itinerary_5.value)
form1.itinerary_6.value = UCase(form1.itinerary_6.value)
form1.itinerary_7.value = UCase(form1.itinerary_7.value)
form1.itinerary_8.value = UCase(form1.itinerary_8.value)
form1.itinerary_9.value = UCase(form1.itinerary_9.value)
form1.itinerary_10.value = UCase(form1.itinerary_10.value)
end sub
</script>
...全文
69 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
DeliverGuy 2004-01-26
  • 打赏
  • 举报
回复
with eval()是什么函数?
DeltaCat 2004-01-26
  • 打赏
  • 举报
回复
<Script language="VBScript">
Sub checkupper()
dim i
for i = 1 to 10
With eval("document.form1.itinerary_" & i)
.value = ucase(.value)
end with
next
End Sub
</Script>
DeliverGuy 2004-01-26
  • 打赏
  • 举报
回复
如何用 for 语句来缩写以上代码?
cloudchen 2004-01-26
  • 打赏
  • 举报
回复
昏,小猫怎么没看懂


<SCRIPT LANGUAGE="VBScript">
dim a
a = "a"

alert eval("a=""A""") '比较表达式,有返回值
alert a '查看a的值,未变化。可以看出eval用于计算一个表达式
alert execute("a=""A""") '赋值表达式,无返回值
alert a '查看a的值,有变化。可以看出execute用于赋值表达式
</SCRIPT>
DeltaCat 2004-01-26
  • 打赏
  • 举报
回复
晕啊,在说什么?
TrueAndFalse 2004-01-26
  • 打赏
  • 举报
回复
嗯,Eval函数和Execute的区别就是前者是用来测试比较,而后者用来赋值:

Eval 函数
计算一个表达式的值并返回结果。

[result = ]Eval(expression)

参数
result

可选项。 是一个变量,用于接受返回的结果。如果未指定结果,应考虑使用 Execute 语句代替。

expression

必选项。可以是包含任何有效 VBScript 表达式的字符串。

说明
在 VBScript 中,x = y 可以有两种解释。第一种方式是赋值语句,将 y 的值赋予 x。第二种解释是测试 x 和 y 是否相等。如果相等,result 为 True;否则 result 为 False。Eval 方法总是采用第二种解释,而 Execute 语句总是采用第一种。

注意 在Microsoft(R) Visual Basic Scripting Edition 中不存在这种比较与赋值的混淆,因为赋值运算符(=)与比较运算符 (==)不同。

下面的例子说明了 Eval 函数的用法:

Sub GuessANumber
Dim Guess, RndNum
RndNum = Int((100) * Rnd(1) + 1)
Guess = CInt(InputBox("Enter your guess:",,0))
Do
If Eval("Guess = RndNum") Then
MsgBox "祝贺你!猜对了!"
Exit Sub
Else
Guess = CInt(InputBox("对不起,请再试一次",,0))
End If
Loop Until Guess = 0
End Sub
cloudchen 2004-01-26
  • 打赏
  • 举报
回复
应该用execute,vbs中eval的作用和其他的语言中的eval有些出入

vbs中eval用于测试比较,用于赋值的话要用execute

如下:

<form name="form1">
<script language="vbscript">
for i = 1 to 10
document.write "<input type='text' name='itinerary_"&i&"' value='"&chr(i+96)&"'>"
next
</script>
</form>
<script language="VBScript">
checkupper()
sub checkupper()
for i = 1 to 10
execute "form1.itinerary_"&i&".value = UCase(form1.itinerary_"&i&".value)"
next
end sub
</script>

28,407

社区成员

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

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