问题具体描述:我想对表单做及时验证功能,在提交数据前对表单数据验证,可最后一个文本框不知道如何设置,试了试在提交按钮里与form<onsubmit="return 函数()" 效果一样,都同时执行了action和表单验证,有没有哪种方法能先表单在action,我不想用xml验证action,效果不好。
jsp页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>填写进货信息</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css" href="theme/office/style.css" />
<script type="text/javascript" src="js/Calendar6.js">
</script>
</head>
<script type="text/javascript">
function checkName() {
var str = document.getElementById("name").value;
if (str == '') {
document.getElementById("vname").innerHTML = "<font color='red'>请填写进货名称</font>";
return false;
} else {
document.getElementById("vname").innerHTML = "";
return true;
}
}
function checkNum() {
var str = document.getElementById("num").value;
if (str == '') {
document.getElementById("vnum").innerHTML = "<font color='red'>请填写进货数量</font>";
return false;
} else {
document.getElementById("vnum").innerHTML = "";
return true;
}
}
function checkMan() {
var str = document.getElementById("man").value;
if (str == '') {
document.getElementById("vman").innerHTML = "<font color='red'>请填写进货人</font>";
return false;
} else {
document.getElementById("vman").innerHTML = "";
return true;
}
}
function checkSupplier() {
var str = document.getElementById("supplier").value;
if (str == '') {
document.getElementById("vs").innerHTML = "<font color='red'>请填写供应商</font>";
return false;
} else {
document.getElementById("vs").innerHTML = "";
return true;
}
}
function checkPrice() {
var str = document.getElementById("price").value;
if (str == '') {
document.getElementById("vp").innerHTML = "<font color='red'>请输入单价</font>";
return false;
} else {
document.getElementById("vp").innerHTML = "";
return true;
}
}
function checkAll() {
if (checkName() && checkNum() && checkMan() && checkSupplier()
&& checkPrice()) {
return true;
} else {
return false;
}
}
</script>
<body class="tab-nav-page" onmousedown="return false;"
onselectstart="return false;">
<ul class="group">
<li>
<div class="hl" id="tb1">
<span class="l"> </span>
<span class="a"></span>
<span class="r"> </span>
</div>
</li>
<li class="active">
<div class="hl" id="tb2">
<span class="l"> </span>
<span class="a">进货新增 </span>
<span class="r"> </span>
</div>
</li>
</ul>
<div class="bgline"></div>
</br>
</br>
<table class="page-header" align="center">
<tbody>
<tr>
<td class="title">
<img src="images/menu/infofind.gif" />
<span>填写进货信息</span>
</td>
</tr>
</tbody>
</table>
<form enctype="multipart/form-data" method="post" name="form1"
action="buy_addBuy" onsubmit="checkAll()">
<table class="frame" align="center">
<tbody>
<tr>
<td class="label">
商品名称:
</td>
<td>
<input type="text" name="buy.goodsname" id="name"
onblur="checkName()" />
<div id="vname" style="display: inline"></div>
</td>
</tr>
<tr>
<td class="label">
商品类型:
</td>
<td>
<select class="text" name="typeid">
<option value="--选择进货类型--">
--选择进货类型--
</option>
<c:forEach items="${type}" var="type">
<option value="${type.id}">
${type.typename}
</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td class="label">
进货数量:
</td>
<td>
<s:textfield name="buy.goodsnum" cssClass="text" id="num"
onblur="checkNum()" />
<div id="vnum" style="display: inline"></div>
</td>
</tr>
<tr>
<td class="label">
进货日期:
</td>
<td>
<input type="text" class="text" name="buy.buydate"
onfocus=calendar(this) />
</td>
</tr>
<tr>
<td class="label">
进货人:
</td>
<td>
<s:textfield name="buy.buyman" cssClass="text" id="man"
onblur="checkMan()" />
<div id="vman" style="display: inline"></div>
</td>
</tr>
<tr>
<td class="label">
供应商:
</td>
<td>
<s:textfield name="buy.supplier" cssClass="text" id="supplier"
onblur="checkSupplier()" />
<div id="vs" style="display: inline"></div>
</td>
</tr>
<tr>
<td class="label">
单价:
</td>
<td>
<s:textfield name="buy.price" cssClass="text" id="price"
onblur="checkPrice()" />
<div style="display: inline" id="vp"></div>
</td>
</tr>
</tbody>
</table>
<table align="center">
<tbody>
<tr class="cmdbar">
<td>
<input type="submit" value="提交" />
</td>
<td>
<input type="reset" value="重填" />
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>