使用闭包特性写的表单校验提交JS
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD><TITLE> New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""><script> /*** * add by 张行 2010-12-16 * 面向对象的JavaScript * */ function $(id) {return document.getElementById(id).value; }// 使用立即方法利用闭包创建私有静态成员方法var Book = (function () { function checkIsbn(isbn, msg)// 私有静态成员方法 校验方法{if (msg === "ok"){if ($(isbn) === "") { return "isbn不能为空!";} } return msg;}function checkName(name, msg) {if (msg === "ok"){if ($(name) !== "zxBook") {return "书名必须为zxBook!";} }return msg;} // 使用闭包特性return function () {// 私有属性var isbn,name,content,pageNum,msg="ok";/************* 特权set方法***************/this.setIsbn = function (strIsbn) {msg = checkIsbn(strIsbn, msg)if (msg === "ok"){isbn = $(strIsbn);}};this.setName = function (strName) {msg = checkName(strName, msg)if (msg === "ok"){name = $(strName);}};this.setContent = function (strContent) {content = $(strContent) || "nullContent";};this.setPageNum = function (strPageNum) {pageNum = $(strPageNum) || "0";};/************* 特权get方法***************/ this.getIsbn = function () {return isbn;};this.getName = function () {return name;}this.getContent = function () {return content;}this.getPageNum = function () {return pageNum;}this.getMsg = function() {return msg;}}})() ;// 构建查询串Book.prototype.createQryString = function (isbn, name, content, pageNum) {var str = "?" + isbn + "=" + this.getIsbn() + "&" + name + "=" + this.getName() + "&" + content + "=" + this.getContent() + "&" + pageNum + "=" + this.getPageNum();return str;}var bookService = {"add" : function () {var book = new Book();book.setIsbn('isbn');book.setName('name');book.setContent('content');book.setPageNum('pageNum'); if (book.getMsg() != "ok"){alert(book.getMsg());return false;}else {alert(book.createQryString('ISBN','NAME','CONTENT','NUM'));/**new Ajax.Request('${request.contextPath}/hehe.action' + book.createQryString('ISBN','NAME','CONTENT','NUM'), {method: 'post',onSuccess: function(transport) {alert(transport.responseText);}});**/}},"del" : function () {},"update" : function (){},"search" : function (){}} function ready() {document.getElementById('submitBtn').attachEvent('onclick', bookService.add); }</script> </HEAD> <BODY onload='ready();'>ISBN : <input type="text" name="isbn"/> 书名: <input type="text" name="name"/>内容: <input type="text" name="content"/>页数: <input type="text" name="pageNum"/><input type="button" name="submitBtn" value=" 提 交 "> </BODY></HTML>
页:
[1]