海绵宝宝 海盗:asp调用函数问题

来源:百度文库 编辑:高校问答 时间:2024/05/11 04:57:52
请问,在下面的代码中,为什么我还没有按提交按扭,就会自动弹出提示框呢?也就是它的函数怎么自动调用了?有什么解决办法?

<form method="post" name="form" target="_self" >
<input type="text" name="a" >
<input type="submit" name="Submit" value="提交" onClick="<%=a%>">
<%
function ok()
if request.Form("a")="" then%>
<script language="javascript">
alert("wrong")
</script>
<%end if
end function
Dim a
a=ok()
%>

asp是服务器端脚本,javascript是客户端脚本,你的代码执行时,会先运行所有服务器端脚本,运行后的返回结果输送到客户端浏览器,javascript是作为返回结果的一部分输送的,然后javascript在客户端浏览器执行,最终生成你看到的内容。

asp和javascript是不能像你的程序这样互相调用的,尤其不能用onclick="<%=a%>"这种形式调用,因为实际上写进浏览器的内容是onclick=""(a的值为空)。

如果你要点击按钮时隐式执行一段asp代码,就必须把这段代码存储成另一个asp文件(a.asp),再定义一个隐藏iframe(名为iff),然后点击按钮的事件这样定义:onclick="iff.location='a.asp'"

如果你要执行的代码中要影响原程序中的变量,那必须将变量用Session代替,否则是没有办法的。另外,即使在a.asp里变更了Session,原页面中的结果仍是无法改变的,除非你指定了刷新事件。

修改为:<form method="post" name="form" target="_self" >
<input type="text" name="a" >
<input type="submit" name="Submit" value="提交" onClick="<%=a%>">
<%

if request.Form("a")="" then%>
<script language="javascript">
alert("wrong")
</script>
<%end if

%>
看看可以不?
---------------------------------
欢迎到群2:20831647
群3:23294350
群4:20828063
是讨论asp的qq群。,先加群2。期待中。