最近做項目,需要用到 jQuery.validate.js插件,於是記錄一下工作中的一些經驗,以便日後學習。
【例子如下】
1.前台頁面
<form id="form1" method="post"> 用戶名:<input type="text" id="UserName" name="UserName" /><!--<span id="name_error"></span>--> <br /> 密 碼:<input type="password" id="Password" name="Password" /> <br /> <input type="submit" id="btnRegister" name="btnRegister" value="注冊" /> <input type="button" id="btnCancel" name="btnCancel" value="取消" /> </form>
2.Javascript
<script type="text/javascript"> //添加自定義驗證 jQuery.validator.addMethod("checkPWD", function (value, element) { var flag = false; //flag = chkpwd($("#pwd")); //自定義驗證密碼邏輯 return this.optional(element) || flag; }); $(function () { $("#form1").validate({ rules: { UserName: { required: true, //emote: function () { //驗證用戶名是否存在是否存在 方法一 // $.ajax({ // type: 'POST', // url: "Handler/Handler1.ashx", // data: { name: $("#UserName").val() }, // async: false, // success: function (data) { // $("#name_error").html(data); // } // }); //} remote: { //驗證用戶名是否存在是否存在 方法二 type: "POST", url: "Handler/Handler1.ashx", //後台處理程序 dataType: "json", //接受數據格式 data: { //要傳遞的參數 action: function () { return "CheckName" }, name: function () { return $("#UserName").val(); }, param1: function () { return "自定義參數1"; } } } }, Password: { required: true, checkPWD: true //自定義驗證,若想不用自定義驗證,把 true 改成 false 即可。 } }, messages: { "UserName": { required: "<span>用戶名不能為空.</span>", remote: "<span>該會員名已存在!</span>" }, "Password": { required: "<span>密碼不能為空.</span>", checkPWD: "<span>密碼不符合自定義規則。。。</span>" } } }); }) </script>
3.後台處理程序
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string action = context.Request["action"]; //獲取用戶名和自定義參數 string name = context.Request["name"]; string param1 = context.Request["param1"]; if (!string.IsNullOrEmpty(name)) { //模擬查詢數據庫,如果用戶輸入的是 admin ,則提示該賬戶已存在,返回 false if (name.Equals("admin")) { context.Response.Write("false"); } else { context.Response.Write("true"); } } }
4.運行結果
4.1 用戶未輸入數據時報錯:
4.2 用戶輸入錯誤信息時報錯: