日期:2014-05-16  浏览次数:21169 次

遇到件怪事:提交表单时,提示不能为空后,还是跳转到目标页面去了
大家可以直接把这俩文件复制出来测试使用,第一表单点击提交后,确实给出提示了,可是点了弹框上的确定以后,该表单还是被提交给表单处理页了:
1,这是表单页面:文件名是“1.asp”

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript" type="text/JavaScript">
 function myCheck()
            {
               for(var i=0;i<document.form1.elements.length-1;i++)
               {
                  if(document.form1.elements[i].value=="")
                  {
                     alert("用户名和密码不能有空项");
                     document.form1.elements[i].focus();
                     return false;
                  }
               }
               return true;
              
            }
</script>

</head>

<body>
<table style="width:570px; height:462px" align="center">
  <tr><td >
<form id="form1" name="form1" method="post" action="2.asp" onsubmit="return myCheck()">
<table width="338" border="0" align="center" cellpadding="5" cellspacing="0">
  <tr>
    <td >user:<input name="user" type="text" class="username" id="user" size="30" />
</td>
  </tr>
  <tr>
    <td class="title">password:<input name="pwd" type="password" class="password" id="pwd" size="30" />
  </tr>
  <tr>
    <td align="right"><input type="image" src="/images/loginin.gif" onclick="this.form.submit()"/> </td>
  </tr>
</table>
</form>
</td></tr>
</table>
</body>
</html>


2,这是提交后的页面:文件名是“2.asp”



<%
response.write"<SCRIPT language=JavaScript>alert('如果你看到我了,就表示上一个表单被提交到本页来了!');"
response.write"javascript:history.go(-1)</SCRIPT>"
response.end
%>

------解决方案--------------------
<input type="image" src="/images/loginin.gif" onclick="this.form.submit()"/> 这个的问题,去掉onclick。。。

type=image 默认就是submit 按钮了.

PS:根据html标准,input 的 type=image 的涵义与 type=submit 相同,只是可以用图片替代提交的按钮。所以 type=image 直接触发 onsubmit 事件。
------解决方案--------------------