为什么还没点"提交",函数就执行了呢?

longsunny 2005-09-22 04:25:52
report.asp如下:

...
<form name="form1" method="post" action="">
<input name="name" type="text" id="name">请输入名字<br>
<input name="company" type="text" id="company">请输入公司名<br>
<input name="report" type="button" id="report" value="提交" onclick="return ccc();">
</form>

<script language="JavaScript">
<!--
function ccc()
{
if (document.form1.name.value=="")
{
alert("请输入名字");
return false;
}
else
{
<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from report",conn,1,3
rs.addnew
rs("name")=document.form1.name.value
rs("company")=document.form1.company.value
...
rs("actiontime")=now()
%>
}
}
//-->
</script>
<%rs.update
rs.close
set rs=nothing%>


程序目的:点"提交"按钮时,调用ccc(),ccc()中先判断name框是否输入,若无内容,出提示框,若有内容则将name,company两个文本框中的内容写入report表.程序开头省略部分已建立ado连接.
问题:
(1).运行时提示"变量未定义:'document',第24行.请问函数ccc()中如何获得本asp窗体中文本框的值?
(2).为检验程序其它部分的有效性,我将ccc()中的document.form1.name.value和document.form1.company.value换成1,跳过问题(1)中的错误,发现界面可以正常显示出来,但此时打开access中的report表却见增加了一条记录,请问我此时还没点"提交"按钮调用ccc(),为什么会增加一条记录呢?程序哪里写错了?
(3)顺便问一下:javascript中可用alert("...");return false;出现警告框,点击后程序中止.在vbscript中可以用msg("...")出现提示框,但点击后程序会继续运行下去,那么在vbscript中程序中止的语句如何书写?














...全文
63 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxfxlhy 2005-09-22
  • 打赏
  • 举报
回复
在<form name="form1" method="post" action="">中加入onsubmit="javascript:return ccc()"既

<form name="form1" method="post" action="" onsubmit="ccc()">
再把
<input name="report" type="button" id="report" value="提交" onclick="return ccc();">中的
onclick="return ccc();去掉。

<input name="report" type="button" id="report" value="提交">
needer01 2005-09-22
  • 打赏
  • 举报
回复
顺序错了!把<%%>里面的东西放到<scrip></scrip>外边
wocall 2005-09-22
  • 打赏
  • 举报
回复
这样子哪行啊!!!
<form name="form1" method="post" action="">
<input name="name" type="text" id="name">请输入名字<br>
<input name="company" type="text" id="company">请输入公司名<br>
<input name="report" type="button" id="report" value="提交" onclick="return ccc();">
</form>

<script language="JavaScript">
<!--
function ccc()
{
if (document.form1.name.value=="")
{
alert("请输入名字");
return false;
}
if (document.form1.company.value=="")
{
alert("请输入公司名");
return false;
}
return true;
}
//-->
</script>
<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from report",conn,1,3
rs.addnew
rs("name")=request("name")
rs("company")=request("company")
...
rs("actiontime")=now()
rs.update
rs.close
set rs=nothing
%>

terry_yip 2005-09-22
  • 打赏
  • 举报
回复
<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from report",conn,1,3
rs.addnew
rs("name")=document.form1.name.value
rs("company")=document.form1.company.value
...
rs("actiontime")=now()
%>

上面这一段是ASP代码,ASP代码是放在<%%>里面的,其它的都是JAVASCRIPT,javascript是写在
<script language="javascript">

</script>
之间的

ASP代码是不受javascript中的if 控制的。如果反过来,asp代码中的if then 倒是能控制javascript的代码的执行。


<% if a=1 then%>
<script language=javascript>
alert("a=1");
</script>
<%else%>
<script language=javascript>
alert("a<>1");
</script>
<%end if%>
itzhiren 2005-09-22
  • 打赏
  • 举报
回复
24行是哪一行?

28,391

社区成员

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

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