日期:2014-05-20  浏览次数:20913 次

一个javascript验证struts表单的问题
一个很奇怪的问题,我在验证的时候即使在javascript里面return false;可表单还是会提交。就像下面这样:

<script language="javascript">
 function validate(){
  var name = document.forms[0].areaName.value;
  if(name=="" || name==null){
  alert("Please input area name.");
  return false;
  }
  else{
  return true;
  }
 }
</script>

<html:form action="admin/areaAction.do?method=addArea">
  <table width="95%" align="center" class="default">
  <tr>
  <td class="item">Name:</td>
  <td><html:text property="areaName" size="50" /></td>
  </tr>
  <tr>
  <td></td>
  <td>
  <html:submit property="bt" styleClass="btn" value="Submit" onclick="validate()" />
  <html:reset property="bt" styleClass="btn" value="Reset" />
  </td>
  </tr>
  </table>
</html:form>

以上代码,结果是,弹出消息框,提示Please input area name,然后就提交到action了...在form标签里面用onsubmit(this)我也试过,效果还是一样的。不知道怎么回事,希望指点一下~~

------解决方案--------------------
老兄.你的提交按钮是不是应该是button 啊.而不是submit.如果你是要验证通过再提交的话,那么应该是用button
------解决方案--------------------
那是肯定的,用button只能用js提交,onclick事件之所以不对,是因为onsubmit事件发生在onclick之前