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

jquery表单验证插件(speed-valiate不需要写一句js代码)

1、插件代码,话不多说,直接贴代码

? ? ??

var show_div_name = "show_validate_div"; //提示信息显示div
var show_div_parent_tag = 'tr';
$(document).ready(function(){
    $('input').focus(function(){
        var show_div_node = $(this).parents(show_div_parent_tag).find('.' + show_div_name);
		var input_val = $(this).val();
		var objItem = $(this);
		if(input_val=='' || input_val==null){
			console.info("这是info");
			showMessage(objItem.attr('default'),show_div_node,false);
		}
        show_div_node.show();
		
    }).blur(function(){
    
        var show_div_node = $(this).parents(show_div_parent_tag).find('.' + show_div_name);
        var input_val = $(this).val();
        var isError = false;
        var objItem = $(this);
        var validArr = validate(objItem, input_val, show_div_node);
        isError = validArr['isCheck'];
		var isAjax = validArr['isAjax'];
		var isCard = validArr['isCard'];
        if (isError && isAjax==false && isCard==false) {
            showMessage('格式正确', show_div_node, false);
        }
    });
    $("form").submit(function(){
        var isSubmit = true;
        $(this).find("input").each(function(){
			var input_val = $(this).val();
        	var objItem = $(this);
			var show_div_node = $(this).parents(show_div_parent_tag).find('.' + show_div_name);
			 show_div_node.show();
			var validArr = validate(objItem, input_val, show_div_node);
			var isValidate = validArr['isCheck'];
			if(isValidate==false){
				isSubmit = isValidate;
			}
        });
        return isSubmit;
    });
		
});

/**
 * 验证属性介绍
 * 1、require,为空验证,取值 true Or false
 * 2、min或max,长度最小或最大值验证,可以只有一个属性或两个同时有
 * 3、reg,正则匹配,
 * 	  a、如果reg值是num(整数)、tel(电话或座机)、card(身份证)、chinese(中文)、email(邮箱)、qq(qq),
 * 	     其中一种,按对应系统提供的正则表达式匹配。
 * 	  b、如果reg值是一个正则表达式,按提供的正则匹配。
 * 	  c、reg属性对应一个regMsg属性,regMsg属性可有可无。如果有,reg验证出错,就会显示regMsg内容,如果没有,出错显示系统默认提示。		  
 * 4、url,ajax远程验证属性,默认按照input框属性name名字提交到后台,后台可以根据改名字,获取input输入内容,进行验证。
 * 	  验证过后需要返回json格式数据,包括两个属性,error(1、验证错误。0、验证成功),msg(验证成功或错误的提示信息)
 */
function validate(objItem,inputVal,showDivNode){
	var isCheck = true;
	var isAjax = false;
	var isCard = false;
	var validArr = new Array();
	if(isExistNode(objItem,"require")){
		isAjax = false;
		isCard = false;
		var requireVal = objItem.attr('require');
		if(requireVal=='false' && (inputVal=='' || inputVal==null)){
			showDivNode.hide();
			return true;
		}
		isCheck = checkNull(requireVal,inputVal,showDivNode);
	}
	if(isExistNode(objItem,"min") && isCheck==true){
		isAjax = false;
		isCard = false;
		var min = objItem.attr("min");
		isCheck = checkLength(min,0,inputVal,showDivNode);
	}
	if(isExistNode(objItem,"max") && isCheck==true){
		isAjax = false;
		isCard = false;
		var max = objItem.attr("max");
		isCheck = checkLength(0,max,inputVal,showDivNode);
	}
	if (isExistNode(objItem,"reg") && isCheck == true) {
		isAjax = false;
		var regMsg = false;
		if(isExistNode(objItem,"regMsg")){
			regMsg = objItem.attr("regMsg");
		}
		var regStr = objItem.attr("reg");
		if(regStr == 'card'){
			isCard = true;
			var reArr = checkCard(inputVal,showDivNode,regMsg);
			if(reArr['error'] == true){
				isCheck = false;
			}
		}else{
			isCard = false;
			isCheck = checkReg(regStr,inputVal,showDivNode,regMsg);
		}
	}
	if (isExistNode(objItem,"url") && isCheck == true) {
		isAjax = true;
		isCard = false;
		var ajax_url = objItem.attr("url");
		var inputName = objItem.attr("name");
		ajax_url += "?"+inputName+"="+inputVal;
		isCheck = ajaxVlidate(ajax_url,showDivNode);
	}
	validArr['isCheck'] = isCheck;
	validArr['isAjax'] = isAjax;
	validArr['isCard'] = isCard;
	return validArr;
}
//空验证
function checkNull(requireVal,inputVal,showDivNode){
	var isCheck = true;
	if(requireVal == 'true' && (inputVal=='' || inputVal==null)){
		isCheck = false;
		showMessage('不能为空',showDivN