首先你这段代码对函数的使用不是很明确,你定义的函数没有什么意思,你把那段代码定义成函数
就是应该是为了重用或是程序清晰,但两个目的都没有达到阿,这段代码要想成功你可以
1、把function updatetxt() 和 end function 这两行去掉。
2、使用javascript来实现这段时,在js函数submitform()中不能那样调用asp的函数的。你现在
document.form1.submit 已经可以提交本页,达到了提交的目的,将
{//alert("22");

updatetxt();
}
这段去掉就可以了。
不过这样程序的逻辑可能有些问题,就是你第一次执行该页时,程序就进行了更新操作
这个问题你可以利用置标志来解决,只要点击回车就将标志置为更新标志。
例如:
temp=request("flag")
if temp=1 then
       sql="select * from table1"
obj_rd.open sql,obj_conn,1,3

obj_rd.movefirst
for n=0 to 3 

obj_rd("txt")=89
obj_rd.movenext
next
obj_rd.update
obj_rd.close
end if
%>
        <script language="javascript">
function submitform()
{
           if (window.event.keyCode==13)  
               document.form1.submit();
}
</script>
<input type="hidden" name="flag" value="1">
<input type="text" name="a<%=i%>" maxlength="50" value="<%=obj_rd("txt")%>" onKeyDown="submitform()">或者你这样试试看看可不可以,好像是不行
       function updatetxt() 
       sql="select * from table1"
obj_rd.open sql,obj_conn,1,3

obj_rd.movefirst
for n=0 to 3 

obj_rd("txt")=89
obj_rd.movenext
next
obj_rd.update
obj_rd.close
end function
%>
        <script language="javascript">
function submitform()
{
           if (window.event.keyCode==13) {
   <%updatetxt()%>
   }
}
</script>

解决方案 »

  1.   

    应该是这样的,你好像没有定义form阿!其中selfpagename为本页的文件名
    temp=request("flag")
    if temp=1 then
           sql="select * from table1"
    obj_rd.open sql,obj_conn,1,3

    obj_rd.movefirst
    for n=0 to 3 

    obj_rd("txt")=89
    obj_rd.movenext
    next
    obj_rd.update
    obj_rd.close
    end if
    %>
            <script language="javascript">
    function submitform()
    {
               if (window.event.keyCode==13)  
                   document.form1.submit();
    }
    </script>
    <form name="form1" action="selfpagename.asp">
    <input type="hidden" name="flag" value="1">
    <input type="text" name="a<%=i%>" maxlength="50" value="<%=obj_rd("txt")%>" onKeyDown="submitform()">
    </form>将页面提交给自己
      

  2.   

    selfpagename.asp
    不好用啊。
      

  3.   

    <%    //链接数据库
        set obj_conn=server.CreateObject("ADODB.Connection")
        DBPath=Server.MapPath("mdb1.mdb")
        obj_conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath
    set obj_rd=server.CreateObject("ADODB.Recordset")
    sql="select * from table1"
    obj_rd.open sql,obj_conn,2,3

    temp=request("flag")
        if temp=1 then
         obj_rd.movefirst
         for n=0 to 3 
    obj_rd("txt")=89
        obj_rd.movenext
         next
       obj_rd.update
        obj_rd.close
    end if %>
    <script language="javascript">
    function submitform()
    {if (window.event.keyCode==13)  document.form1.submit()

    }

    </script>这么写,告诉我数据库或对象只读,我用的是access数据库。
      

  4.   

    你采用数据源的形式不可以吗?先在odbc中建个数据源再进行连接
    写法如下,这是access没有密码的情况.如果有密码就写在pwd后面就可以了<%
    temp=request("flag")
    dbsn="dsn=odbc数据源的名字;uid=;pwd="
    set conn=server.createobject("ADODB.Connection")
    conn.open dbsn
    set obj_rd=server.CreateObject("ADODB.Recordset")
    sql="select * from table1"
    obj_rd.open sql,obj_conn,2,3

        if temp=1 then
         obj_rd.movefirst
         for n=0 to 3 
    obj_rd("txt")=89
        obj_rd.movenext
         next
       obj_rd.update
        obj_rd.close
    end if %>
    <script language="javascript">
    function submitform()
    {
              if (window.event.keyCode==13) 
              document.form1.submit()

    }

    </script>
             
             <form name="form1" action="这里是你的本页面的文件名.asp">
           <input type="hidden" name="flag" value="1">
           <input type="text" name="a<%=i%>" maxlength="50" value="<%=obj_rd("txt")%>" onKeyDown="submitform()">
    </form>