回 帖 发 新 帖 刷新版面

主题:请问在我这个程序里如何在同一个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>  。。。 剩下的代码略。

回复列表 (共2个回复)

沙发

不同的功能用不同的表单来描述,应该可以解决吧。

板凳

这个练习要求全部功能都在三个页面实现,而上述问题也只能在这个页面里解决。就是因为有功能集成的要求,才会有这个问题的。当然如果有通过对应的servlet调用某个Bean的方法来解决的话,也是可以的。
一集成,很多问题就来了,不过这对熟悉MVC结构是很有帮助的~~~[em2]

我来回复

您尚未登录,请登录后再回复。点此登录或注册