zepto.form.js 完美替代 jquery.form.js,新增表单校验方法含ajax

作者QQ:156791941,技术问题可以探讨,加Q请注明来意

源码如下,暂时只提供了ajaxSubmit方法,有更好的意见可以跟我反馈,项目有需求本人会持续更新,敬请关注。

 

(function($) {
	$.fn.ajaxSubmit = function(options) {
		var form = this;
		
		var formAction = form.attr('action');
		var formMethod = form.attr('method');
		if(formMethod == null ||
				!/^(POST|GET)$/i.test(formMethod.trim())){
			formMethod = "GET";
		}
		var params = new Object();
		
		/*组合参数*/				
		var items = form.find("input[type=hidden],"+
                "input[type=text],"+
                "input[type=password],"+
                "textarea,"+
                "select,"+
                "input[type=radio]:checked,"+
                "input[type=checkbox]:checked");
		
		items.each(function(index){
			params[this.name] = this.value;
		});
		/**/
		
		var dataType = options.dataType;
		if(dataType == null)
			dataType = 'json';
		
		var success = options.success;
		if(success == null){
			success = function(){
			};
		}
		
		$.ajax({
			type: formMethod,
			url: formAction,
			data: params,
			dataType: dataType,
			success: success,
                        traditional: true
		});
	};
})(Zepto);

 

(function($){    
			$.extend($.fn, {
				v$required:function(){
					
					if ( this[0].nodeName.toLowerCase() === "select" ) {
						var val = this.val();
						return val && val.length > 0;
					}
					
					var value = this.val();
					
					return value !== undefined && value !== null && value.length > 0;
				},
				v$range:function(min,max){
					var len = this.val().length;
					return len >= min && len <= max;
				},
				v$email:function(){
					var value = this.val();
					return /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );
				},
				v$equalTo:function(param){
					var value = this.val();
					var target = $( param );
					
					return value === target.val();
				},
				v$remote:function(url,param){
					var result = false;
					
					if(!param){
						param = {};
						param[this.attr("name")] = this.val();
					}
					
					$.ajax({
						url: url,
						data: param,
						type: 'POST',
						dataType: 'text',
						traditional: true,
						async: false,
						success: function(data){
							result === data;
						}
					});
					
					return result;
				}
			})
		})(Zepto);

使用方法

 

$("#formId").ajaxSubmit({

...

});

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值