注册 登录
编程论坛 ASP技术论坛

怎样让一个提交按钮失效?

tsrtsr 发布于 2010-07-22 15:29, 4004 次点击
提交按钮将所数据存入数据库中,然后按钮失效。请高手看一下帮忙。
以下是exam.asp部分代码:
<form method="POST" action="danxscore.asp"  name="danxscoreform" >
  <table border="0" cellspacing="0"  bordercolor="#111111" width="100%" >
    <tr>
      <td width="100%" height="25"><b><font size="3" color="#000080">一、单项选择题(每题<%=session("singleper")%>分,共<%=session("singlenumber")%>题)
        <%
        set rs1=server.createobject("adodb.recordset")
        sql1="select * from ksst where studentkaohao='"&session("studentkaohao")&"'"
         rs1.open sql1,conn,1,1
        j=1
        for i=1 to len(rs1("strid1")) step 4   
          dx=(mid (rs1("strid1"),i,3))   
          set rs=server.createobject("adodb.recordset")
          sql="select * from question where id="&clng(dx)
          rs.open sql,conn,3,2
        
      '显示题目
%>
      </font></b></td>
    </tr>
  </table>
  <table border="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#C0C0C0" width="100%"  cellpadding="0">
    <tr>
      <td width="100%" bgcolor="#EFEFEF" height="20">&nbsp;&nbsp;<%=j%>、<%=rs("question")%></b></td>
    </tr>
<%
      if rs("A")<>"" then
%>
    <tr>
      <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="NO<%=rs("id")%>" value="A">A、<%=rs("A")%></td>
    </tr>
<%
      end if
      if rs("B")<>"" then
%>
    <tr>
      <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="NO<%=rs("id")%>" value="B">B、<%=rs("B")%></td>
    </tr>
<%
      end if
      if rs("C")<>"" then
%>
    <tr>
      <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="NO<%=rs("id")%>" value="C">C、<%=rs("C")%></td>
    </tr>
<%
      end if
      if rs("D")<>"" then
%>
    <tr>
      <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="NO<%=rs("id")%>" value="D">D、<%=rs("D")%></td>
    </tr>
  <%
      end if
%>   
  </table>
<%  
     j=j+1
    rs.update
    next
    rs.close
    set rs=nothing
%>

<tr>
 <td width="100%"><p align=right><input type="submit" value="  提  交  " name="danxadd" ></p>
 </td>
</tr>


以下是danxscore.asp代码
<!--#include file="connect.asp"-->
<%
  '读取当前科目考试信息
  studentdanwei=session("studentdanwei")
  studentkaohao=session("studentkaohao")
  subjectname=session("selectsubjectname")
  studentname=session("studentname")
  studentpassword=session("studentpassword")
  singlenumber=session("singlenumber")
  singleper=session("singleper")
  multinumber=session("multinumber")
  multiper=session("multiper")
  pdnumber=session("pdnumber")
  pdper=session("pdper")
  endtime=now()
  score=0
      
     '计算单选题得
      set rs1=server.createobject("adodb.recordset")
      sql1="select * from ksst where studentkaohao='"&session("studentkaohao")&"'"
      rs1.open sql1,conn,1,1
      for i=1 to len(rs1("strid1")) step 4   
        dx=(mid (rs1("strid1"),i,3))   
        set rs=server.createobject("adodb.recordset")
        sql="select * from question where id="&clng(dx)
        rs.open sql,conn,3,2
        result=request.form("no"&dx)
        if  not isempty(result) then
          sql="select * from question where id="& clng(dx)
          set rs=server.createobject("adodb.recordset")
          rs.open sql,conn,3,2     
          if result=rs("answer") then
            score=score+cint(singleper)
          end if
          rs.close
          set rs=nothing
        end if
      next
            
      rs1.close
      set rs1=nothing
      
      sql="select * from score where studentname='"&session("studentname")&"' and studentkaohao='"&session("studentkaohao")&"' and studentpassword='"&session("studentpassword")&"'"
  set rs=server.createobject("adodb.recordset")
  rs.open sql,conn,3,2
  rs("studentdanwei")=studentdanwei
  rs("endtime")=endtime
  rs("danxscore")=score
  rs("studentkaohao")=studentkaohao
  rs.update
  rs.close
  set rs=nothing
  call endConnection()
  
  Response.Write ("<script language='vbscript'>" & vbCrLf)
  Response.Write ("alert " & Chr(34) & "单选题答案保存成功,请继续答题!" & Chr(34) & vbCrLf)
  Response.Write ("location.href=" & Chr(34) & "examine.asp?did=" &did &"&cid=" &cid & Chr(34) & vbCrLf)
Response.Write ("</script>")
%>

保存成功后,要回到exam.asp继续操作多选和判断,  如何使提交按钮,提交数据回到exam.asp以后失效。
18 回复
#2
gupiao1752010-07-22 16:27
exam.asp里好象<form>没有配对!只有开始的没有结束的</form>
<tr>
<td width="100%"><p align=right><input type="submit" value="  提  交  " name="danxadd" ></p>
</td>
</tr>
</form>
#3
tsrtsr2010-07-22 17:25
已经改好了,但是我想实现的功能还是没能实现。
有没有一种方法可以在当前页面下实现数据提交到数据库,然后该按钮失效。用我一开始贴的代码,提交后转到danxscore.asp,数据提交成功后,还要返回exam.asp继续做多选和判断。 回来后单选的还可以继续提交。高手帮忙!

[ 本帖最后由 tsrtsr 于 2010-7-22 17:27 编辑 ]
#4
gupiao1752010-07-22 17:51
不太明白你的意思,不过个人感觉,如果想提交后还回来。必须在danxscore.asp里加JS跳转返回来
#5
tsrtsr2010-07-22 20:28
exam.asp页面有单选、多选和判断和主观简答题,要求单选做完后要提交,多选做完后提交,判断做完后提交,简答也是。现在点单选的提交后,转到DANXSCORE.ASP
 
有没有一种方法,在exam.asp点提交单选答案按钮后,在exam.asp页面下提交数据到数据库, 然后提交单选答案按钮 失效,不能再用。

多选和判断和简单都没有做呢。版主救命!
#6
cnfarer2010-07-22 20:39
在exam.asp上加一个ifram(隐藏),当提交时,将danxscore.asp的目标为这个ifram,这样exam.asp页面不会破坏.还可以继续操作.
#7
tsrtsr2010-07-22 20:51
版主大人能说的再详细吗,最好有代码。俺不是高手,做这个破东西纯属赶鸭子上架!
#8
yms1232010-07-22 22:16
HTML的按钮有一个disabled的属性可以让一个按钮或元素失效
比如直接让某个按钮失效,不可点击
<input type="submit" value="提交" disabled>
就可以让按钮不可点击
用javascript也是可以动态控制disabled的
比如有如下按钮
<script language="javascript">
function Disabled_Btn1(Val)
{
   if(Val==0)
      document.form1.btn1.disabled=true;//设置按钮有效
   else
      document.form1.btn1.disabled=false;//设置按钮失效
}
</script>
<form name="form1">
  <input type="button" name="btn1" value="这是一个按钮">让按钮
  <a href="#" onClick="Disabled_Btn1(0);" >可以点击</br>
  <a href="#" onClick="Disabled_Btn1(1);" >不可以点击</br>
</form>
#9
tsrtsr2010-07-22 22:27
用JAVASCRIPT可以存取数据库吗?
#10
tsrtsr2010-07-22 22:46
看来我自己没有表达清楚。我再叙述一下。请斑竹大人救命。有一个exam.asp,是考试界面。里边包括单选、多选、判断和简答。为了避免电脑死机或断电等以外,要求每一种体型做完后存盘也就是提交。 以单选题为例, 想实现  按提交按钮后,把单选的答案存入数据表score中, 然后单选提交按钮 显灰也就是不能再点提交了。然后继续答多选和判断等题。  

但是现在的问题是 点击提交后进入到danxscore.asp, 保存exam.asp中所做的答案,保存成功后,返回到exam.asp。没办法实现按钮失效,并且容易让人误会要重新再做一遍单选。
有没有一种方法 在exam.asp中提交数据,不跳转到danxscore.asp,把单选答案存入到score表,然后单选提交按钮失效。

#11
cnfarer2010-07-23 07:40
给你个简单的例子,文件中有简单说明。
只有本站会员才能查看附件,请 登录
#12
yms1232010-07-23 10:16
以下是引用tsrtsr在2010-7-22 22:46:03的发言:

看来我自己没有表达清楚。我再叙述一下。请斑竹大人救命。有一个exam.asp,是考试界面。里边包括单选、多选、判断和简答。为了避免电脑死机或断电等以外,要求每一种体型做完后存盘也就是提交。 以单选题为例, 想实现  按提交按钮后,把单选的答案存入数据表score中, 然后单选提交按钮 显灰也就是不能再点提交了。然后继续答多选和判断等题。  

但是现在的问题是 点击提交后进入到danxscore.asp, 保存exam.asp中所做的答案,保存成功后,返回到exam.asp。没办法实现按钮失效,并且容易让人误会要重新再做一遍单选。
有没有一种方法 在exam.asp中提交数据,不跳转到danxscore.asp,把单选答案存入到score表,然后单选提交按钮失效。
可以使用Ajax实现不跳转到danxscore.asp让单选按钮失效,或者做一个隐藏iframe来隐藏提交,不跳转页面。
#13
tsrtsr2010-07-23 10:23
谢谢,两位斑竹的提示,正在研究iframe,能不能就我这个问题告诉我应该怎么办啊。研究半天了没成功,
谢谢了!最好说的详细点

[ 本帖最后由 tsrtsr 于 2010-7-23 10:31 编辑 ]
#14
yms1232010-07-23 12:30
隐藏iframe可以使用javascript提交也可以直接提交比如
<html>
<head>
  <title>提交到隐藏iframe</title>
<script language="javascript">
function subForm_Click()
{
   document.form1.subForm.disabled=false;
   document.form1.submit();//提交表单
}
</script>
</head>
<body>
<form name="form1" acrion="subdata.asp" target="frame1" >
   <input type="submit" name="submit" value="直接提交">
   <input type="button" name="subForm" onClick="subForm_Click();" value="脚本提交">
</form>
<iframe name="frame1" style="display:none;" src="" ></iframe>
</body>
</html>
#15
yms1232010-07-23 12:33
表单的action属性是提交页面的URL地址
target是提交到哪里的目标指向,这里可以写iframe的name属性,也可以用_top、_self、_blank、_parent都可以用来提交。
#16
tsrtsr2010-07-23 13:07
万分感谢各位版主大人,已经解决!
#17
gupiao1752010-07-23 15:09
不过为了多方面兼容各种主流浏览器,并做到无刷新跳转,我想AJAX是最好的选择!
#18
gupiao1752010-07-23 15:10
tsrtsr解决了问题后,最好公布一下你的具体思路和代码方法!好让大家学习一下,以后就不用再问类似的问题了。
#19
tsrtsr2010-07-23 21:14
根据yms123版主的思路,利用隐藏的IFRAME,再当前页提交,不跳转页面。
<form method="POST" action="danxscore.asp"  name="danxscoreform" onSubmit="danxadd.disabled=true" target="frame1">
......
<input type="submit" value="  提  交  " name="danxadd" ></form>
 <iframe name="frame1" style="display:none;" src="" ></iframe>


danxscore.asp是数据提交页面,就不贴代码了。太多。呵呵

再次感谢各位版主的帮助!
1