主题:请问在我这个程序里如何在同一个jsp页面里实现不同的客户端校验?
我正在做一个MVC结构的图书管理系统的小练习,大体结构如下:
----<---------<---------<------
| |
servlet_book-->book.jsp<>servlet_edit_mid<>edit.jsp
处理过程中调用的bean我就不列了。
现在我在edit.jsp里加入了新书入库时的各项属性不可为空的客户端校验,并在表单属性栏里用 onSubmit 实现校验的调用。但在edit.jsp 里我集成了添加新书和查询两个功能,如果我只是用onSubmit 实现校验的调用,就会在进入查询功能时也进行非空校验,即要求用户在查找时填入所有信息才能通过----这是非常可笑的矛盾,可是我不知道该如何结决,恳请各位高人指点一二~~~ 下面是edit.jsp的相关代码:
<! 实现增,查,改功能的页面>
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="com.book.BookBean" %>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<script language="javascript">
function checknull(){
if(!(document.form.bookname.value&&document.form.publisher.value&&document.form.ISBNnum.value&&document.form.type.value)){
alert("不能插入空值!");
return false;}
else return true;
}
function checknum1(){
if(document.form.price.value=="0.0")
{
alert("价格不能为空!请重新输入!");
document.form.price.focus();
return false;
}
else return true;
}
function checknum2(){
if(document.form.purchasenum.value=="0.0")
{
alert("购进册数不能为空!请重新输入!");
document.form.purchasenum.focus();
return false;
}
else return true;
}
function total_check(){
if((checknull())==true){
if(((checknum1())&&(checknum2()))==true){
return true;
}
else return false;
}
else
return false;
}
</script>
<%BookBean bookBean=new BookBean();
ArrayList ls;
ls=(ArrayList)request.getAttribute("bookList");
for(int bookIndex=0;bookIndex<ls.size();bookIndex++){
bookBean=(BookBean)ls.get(bookIndex);
%>
//关键看这里:
<body><form name="form" method="POST" action="servlet_edit_mid" onsubmit="return total_check()">
//调用校验的onsubmit
<input type="hidden" name="jspflg" value="edit_jsp">
<table width="41%" height="296" border="1" align="center">
<tr align="center">
<td height="82" colspan="2"><font color="#000000" size="+1"><%=bookBean.getTITLE()%></font></td>
</tr> 。。。 剩下的代码略。
----<---------<---------<------
| |
servlet_book-->book.jsp<>servlet_edit_mid<>edit.jsp
处理过程中调用的bean我就不列了。
现在我在edit.jsp里加入了新书入库时的各项属性不可为空的客户端校验,并在表单属性栏里用 onSubmit 实现校验的调用。但在edit.jsp 里我集成了添加新书和查询两个功能,如果我只是用onSubmit 实现校验的调用,就会在进入查询功能时也进行非空校验,即要求用户在查找时填入所有信息才能通过----这是非常可笑的矛盾,可是我不知道该如何结决,恳请各位高人指点一二~~~ 下面是edit.jsp的相关代码:
<! 实现增,查,改功能的页面>
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="com.book.BookBean" %>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<script language="javascript">
function checknull(){
if(!(document.form.bookname.value&&document.form.publisher.value&&document.form.ISBNnum.value&&document.form.type.value)){
alert("不能插入空值!");
return false;}
else return true;
}
function checknum1(){
if(document.form.price.value=="0.0")
{
alert("价格不能为空!请重新输入!");
document.form.price.focus();
return false;
}
else return true;
}
function checknum2(){
if(document.form.purchasenum.value=="0.0")
{
alert("购进册数不能为空!请重新输入!");
document.form.purchasenum.focus();
return false;
}
else return true;
}
function total_check(){
if((checknull())==true){
if(((checknum1())&&(checknum2()))==true){
return true;
}
else return false;
}
else
return false;
}
</script>
<%BookBean bookBean=new BookBean();
ArrayList ls;
ls=(ArrayList)request.getAttribute("bookList");
for(int bookIndex=0;bookIndex<ls.size();bookIndex++){
bookBean=(BookBean)ls.get(bookIndex);
%>
//关键看这里:
<body><form name="form" method="POST" action="servlet_edit_mid" onsubmit="return total_check()">
//调用校验的onsubmit
<input type="hidden" name="jspflg" value="edit_jsp">
<table width="41%" height="296" border="1" align="center">
<tr align="center">
<td height="82" colspan="2"><font color="#000000" size="+1"><%=bookBean.getTITLE()%></font></td>
</tr> 。。。 剩下的代码略。