资源描述:
《MVCjQuery开发BS系统③:表单提交t》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、今天我们就谈如何用JQuery+MVC来处理表单的提交。想达到的效果:1、提交前的表单验证2、表单验证3、提交后的反馈信息ok,先说一下工作的原理。前台,action指定了接受表单的处理页面。method这里我们只说post如果用ajax提交表单,自然xxx.aspx便是请求的url。ajax请求后的callback便是响应表单的提交结果(错误、成功),我们提交的反馈信息用一个浮层(lightbox)来表示。不至于用aler
2、t("");这样铛铛铛很囧。我们引入一个Jquery的插件http://www.malsup.com/jquery/form/#api 这是一个略有名气的插件,方便易用。关于其用法,大家可以搜索下。那么我们需要做的就是1、jquery.form.js的使用 2、lightbox的实现 3、如何验证代码$.fn.submitForm=function(args){varurl,id,callback,before;id=this.attr("id");if(typeof(args)=="string"){url
3、=args;before=undefined;callback=undefined;}else{args=args
4、
5、newObject();url=args.url
6、
7、this.attr("action");if(typeof(args)=="function"){callback=args;}else{before=args.before;callback=args.callback;}}//输入验证this.inputValidate();//form没有url则是伪提交if(url==undefine
8、d
9、
10、url==""){$("#"+id).submit(function(){if($("#"+id).submitValidate()==false)returnfalse;//验证成功就执行callbackcallback();});}else{this.ajaxForm({url:url,beforeSubmit:function(a,f,o){//提交验证if($("#"+id).submitValidate()==false)returnfalse;if(before!=undefined&&be
11、fore()==false){returnfalse;}o.dataType="json";},success:function(data){if(data==""
12、
13、data==null){returnfalse;}$("#myMsg").showMsg(data,callback);returnfalse;}});}returnthis;}; 上面的方法很简单,就是form插件的使用,还有几个我们需要实现的方法。(inputValidate,submitValiedate,ajaxMsg)既然是ajax提
14、交,我们则需要给客户端一个反馈信息,然后用Lightbox呈现。一:我们定义一个JsonMessage类 public class JsonMessage { public int result { get; set; } //0错误 1正确 2提示 3警告 public string title { get; set; }//Lightbox窗口的标题 public string content { get; set; }//message的具体内容
15、 public string redirect { get; set; }//弹出后自动跳转的到哪里? public object callBackData { get; set; }//客户端需要的数据比如一个新增的id或整个modelMVC返回Json(jsonmsg1),客户端的callback便可以得到这个对象的json格式。(注意:如果是附件的表单提交,则不能识别JsonResult格式。具体我还没有研究怎么回事,这种情况只能response一个json字符串,可以用Syst
16、em.Web.Script.Serialization.JavaScriptSerializer来序列化对象,也很方便。)二:我们写一个ajaxMsg来实现lightbox,这是我自己写的Lightbox,比较简陋,如果不喜欢,也可以用一些知名的插件。代码(function($){$.fn.showMsg=function(model,callback,fail){varme=this;if(me.