日期:2014-05-16  浏览次数:20891 次

前端AJAX验证
前端验证使用jquery.validate.j
使用前必须解决他的BUG:在源文件的remote方法中

$.ajax($.extend(true, {
 url: param,
 mode: "abort",
 port: "validate" + element.name,
 dataType: "json",
 //data: data,
 data:param.data||data,//修改不从data正确取值的问题  


例子:
$(document).ready(function() {
//添加自己的验证方法
 jQuery.validator.addMethod("checkCode", function(value, element) { 
          return this.optional(element) || /^[a-zA-Z0-9_]{1,}$/.test(value); 
     }, "英文名称不能包含中文"); 
      
 $("#site_form").validate({
  rules: {
   siteName:{//这个值必须与表单中的name的值对应
    remote : {
     url : "<%=request.getContextPath()%>/site!checkCodeUnique",
     type : "post",
     data : {
      code : function(){
      //闭包来每次获取,不然只会取第一次的值
       return $('#code').val();//这里可以取ID的值
      }
     }
    },
     required : true,
     checkCode : true
    },
    title: "required"
    },
    messages: {
     siteName: {
      remote: "该英文名已存在!"//覆写原来的提示信息
     }
    }
   });
        });