精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MVC+jQuery開發B/S系統:表單提交

開發 后端
B/S系統是基于B/S結構的系統,也就是基于瀏覽器/服務器的系統。本文主要介紹MVC+jQuery來處理表單的提交,讓我們一起來看。

Jquery是一個優秀的Javascrīpt框架。MVC是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。今天我們就談如何用JQuery+MVC來處理表單的提交。 

想達到的效果:

1、提交前的表單驗證 

2、表單驗證 

3、提交后的反饋信息 

ok,先說一下工作的原理。

前臺<form action='xxx.aspx' method='post'></form>,action指定了接受表單的處理頁面。method這里我們只說post。 如果用ajax提交表單,自然xxx.aspx便是請求的url。ajax請求后的callback便是響應表單的提交結果(錯誤、成功),我們提交的反饋信息用一個 浮層(lightbox)來表示。 不至于用 alert(""); 這樣鐺鐺鐺很囧。

我們引入一個Jquery的插件http://www.malsup.com/jquery/form/#api 這是一個略有名氣的插件,方便易用。關于其用法,大家可以搜索下。

那么我們需要做的就是: 

1、jquery.form.js的使用 

2、lightbox的實現 

3、如何驗證

代碼:

  1. $.fn.submitForm = function(args)   
  2. {          
  3. var url, id, callback, before;   
  4. id = this.attr("id");          
  5. if (typeof (args) == "string")   
  6. {              
  7. url = args;              
  8. before = undefined;              
  9. callback = undefined;          
  10. }          
  11. else   
  12. {              
  13. args = args || new Object();              
  14. url = args.url || this.attr("action");              
  15. if (typeof (args) == "function")   
  16. {                  
  17. callback = args;              
  18. }              
  19. else   
  20. {                  
  21. before = args.before;                  
  22. callback = args.callback;              
  23. }          
  24. }          
  25. //輸入驗證          
  26. this.inputValidate();          
  27. //form沒有url 則是偽提交          
  28. if (url == undefined || url == "")   
  29. {              
  30. $("#" + id).submit(function() {                  
  31. if ($("#" + id).submitValidate()==false)                      
  32. return false;                  
  33. //驗證成功就執行callback                  
  34. callback();              
  35. });          
  36. }          
  37. else   
  38. {              
  39. this.ajaxForm({                  
  40. url: url,                  
  41. beforeSubmit: function(a, f, o)   
  42. {                      
  43. //提交驗證                      
  44. if ($("#" + id).submitValidate() == false)                          
  45. return false;                      
  46. if (before != undefined && before() == false) {                          
  47. return false;                      
  48. }                      
  49. o.dataType = "json";                  
  50. },                  
  51. success: function(data) {                      
  52. if (data == "" || data == null)   
  53. {                          
  54. return false;                      
  55. }                      
  56. $("#myMsg").showMsg(data, callback);                    
  57. return false;                  
  58. }              
  59. });          
  60. }          
  61. return this;      
  62. }; 

上面的方法很簡單,就是form插件的使用,還有幾個我們需要實現的方法。(inputValidate,submitValiedate,ajaxMsg)
既然是ajax提交,我們則需要給客戶端一個反饋信息,然后用Lightbox呈現。

#p#

一:我們定義一個JsonMessage類

  1. public class JsonMessage  
  2. {  
  3. public int result { getset; } //0錯誤 1正確 2提示 3警告  
  4. public string title { getset; }//Lightbox窗口的標題  
  5. public string content { getset; }//message的具體內容  
  6. public string redirect { getset; }//彈出后自動跳轉的到哪里?  
  7. public object callBackData { getset; }//客戶端需要的數據 比如 一個新增的id或整個model  
  8. }  
 

MVC返回Json(jsonmsg1),客戶端的callback便可以得到這個對象的json格式。
(注意:如果是附件的表單提交,則不能識別JsonResult格式。具體我還沒有研究怎么回事,這種情況只能response一個json字符串,可以用System.Web.Script.Serialization.JavaScriptSerializer來序列化對象,也很方便。)

二:我們寫一個ajaxMsg來實現lightbox,這是我自己寫的Lightbox,比較簡陋,如果不喜歡,也可以用一些知名的插件。

代碼:

  1. (function($)   
  2. {   
  3. $.fn.showMsg = function(model, callback, fail)   
  4. {   
  5. var me = this;   
  6. if (me.length == 0)   
  7. {   
  8. $("body").append("<div id='" + me.selector.replace("#""") + "'></div>");   
  9. $(me.selector).showMsg(model, callback);   
  10. return;   
  11. }   
  12. if (model == undefined)   
  13. return;   
  14. model.content = model.result == 1 && model.content == undefined ? "操作成功!" : model.content;   
  15. me.html(model.content);   
  16. me.removeClass().addClass("message_" + model.result).show(100);   
  17. if (model.result1 == 1 && fail != undefined)   
  18. {   
  19. fail(model);   
  20. }   
  21. if (model.result == 1 && callback != undefined)   
  22. {   
  23. callback(model);   
  24. }   
  25. setTimeout(function()   
  26. {   
  27. if (me.css("display") != "none")   
  28. {   
  29. me.hide(100);   
  30. }   
  31. }, 3000);   
  32. return me;   
  33. }  
  34. })(jQuery);  

Ajax消息的樣式完全可以用CSS來做,包括div的定位都可以在css里寫js代碼來實現。

不知道有沒有人能理解我這里的callback,我說一下他的用到的情況。 實際應用中我還有一個ajaxWin來實現彈窗,彈窗里的表單提交后一般需要關閉彈窗,然后更新一些數據(比如刷新列表)。這時就需要 submit后的callback動作。另外就是我目前還有使用到redirect這個屬性。呵呵,我之前的系統需要大量的跳轉處理,這些跳轉也是無刷新的,有一個數組來記錄訪問的地址。可以實現后退和前進。

三:好了,Lightbox已經實現了,也能show出各種類型的信息了。
下面還剩下表單驗證。 其實表單驗證大有文章可做。我這也不能一一做到。目前只做了些簡單的驗證。以后會實現比較復雜的錯誤提示效果。其實這都是體力活,上面沒要求我也懶的弄。

驗證我采用的是給control一些自定義屬性,然后再判斷其值是否合法。

代碼:

  1. //輸入驗證   
  2. $.fn.inputValidate = function() { $("input,select,textarea"this).each(function() {   
  3. var me = $(this);   
  4. var isnull = me.attr("isnull") || "1";   
  5. var dvalue = me.attr("dvalue");   
  6. me.focus(function() {   
  7. if (this.value == "") $(this).inputRemove();   
  8. });   
  9. me.keyup(function() { if (this.value == "") $(this).inputRemove(); });   
  10. //①非空檢查 if (isnull == "0") {   
  11. me.blur(function() {   
  12. if ($(this).val() == "" || $(this).val() == dvalue) $(this).inputError("此項必須填寫!");   
  13. else $(this).inputRight();   
  14. });   
  15. }   
  16. //②正則注冊onchange事件   
  17. var regexValue = me.attr("regex");   
  18. if (regexValue != undefined) {   
  19. var thisValue = me.val();   
  20. me.blur(function() {   
  21. var re = new RegExp(regexValue, "ig");   
  22. if (this.value != "" && !re.test(this.value)) { me.inputError("格式不正確!");   
  23. return result = false;   
  24. else me.inputRight();   
  25. }); }   
  26. //③最小長度   
  27. var minLength = me.attr("minlength") || 0;   
  28. if (minLength != undefined) minLength = parseInt(minLength);   
  29. me.blur(function() {   
  30. if (me.val() != null)   
  31. if (me.val().length < minLength) {   
  32. me.inputError("長度不能小于" + minLength); }   
  33. });   
  34. //④其他   
  35. });   
  36. };   
  37. //提交驗證   
  38. $.fn.submitValidate = function() {   
  39. var result = true; $("input:visible,select:visible,textarea:visible"this).each(function() {   
  40. var me = $(this);   
  41. var thisValue = "";   
  42. if (me.attr("type") == "radio" || me.attr("type") == "checkbox") {   
  43. thisValue = $("input[name='" + this.name + "']:checked").val();   
  44. }   
  45. else thisValue = me.val();   
  46. //判斷是否違法   
  47. //① 是否必填 且不能為空或缺省值   
  48. if (me.attr("isnull") == "0") {   
  49. if (thisValue == "" || (thisValue != "" && thisValue == me.attr("dvalue"))) {   
  50. me.inputError("此項必須填寫!");   
  51. return result = false;   
  52. }   
  53. else me.inputRight();   
  54. }   
  55. //② 是否符合格式 屬性為 regex 正則   
  56. if (thisValue != "") {   
  57. var reValue = $(this).attr("regex");   
  58. if (reValue != undefined) {   
  59. re = new RegExp(reValue, "ig");   
  60. if (!re.test(thisValue)) {   
  61. me.inputError("格式不正確!");   
  62. return result = false;   
  63. }   
  64. else me.inputRight();   
  65. } } });   
  66. return result;   
  67. };   
  68. $.fn.inputError = function(msg) {   
  69. this.inputRemove();   
  70. //this.focus();   
  71. $("span"this.parent()).hide();   
  72. this.parent().addClass("focus").append("<span class='error'>" + (msg || '') + "</span>");   
  73. }   
  74. $.fn.inputRight = function(msg) {   
  75. this.inputRemove();   
  76. //this.focus();   
  77. $("span"this.parent()).hide();   
  78. this.parent().addClass("focus").append("<span class='right'>" + (msg || '') + "</span>");   
  79. } $.fn.inputRemove = function() {   
  80. this.removeClass("focus");   
  81. $(".right,.error"this.parent()).remove();   
  82. $("span"this.parent()).show();   
  83. }  
 

每一種方法,我們都應該從性能和發功效率上來考慮,要做到兩者兼得是很不容易的。通過本文作者的分析,希望會對你有所幫助。

責任編輯:于鐵 來源: 博客園
相關推薦

2009-09-14 18:44:06

MVC+jQuery

2012-06-05 10:15:43

jQuery

2009-07-29 16:40:50

Ajax提交asp.n

2012-12-24 10:00:07

ASP.NETjQueryAjax

2009-06-25 14:32:00

Java BS開發模式

2010-11-23 16:56:04

mysql表單

2010-07-29 16:38:14

Flex表單

2023-04-11 07:50:27

軟件架構設計

2010-03-04 11:36:02

Python提交表單

2013-11-13 14:39:53

表單提交開發

2013-11-13 11:01:14

表單表單重復提交表單策略

2011-06-16 10:21:52

jQuery

2009-12-01 18:11:03

PHP表單重復提交

2012-03-08 11:23:09

jQuery Mobi

2012-03-27 14:34:07

Visual Stud微軟MVC

2009-05-18 10:11:06

MVCXML動態表單

2010-01-22 14:59:40

VB.NET表單自動提

2009-03-31 13:12:05

ASP.NETMVC表單驗證

2012-03-29 09:27:49

WEBjQuery

2009-07-29 09:17:12

jQuery刪除
點贊
收藏

51CTO技術棧公眾號

久久亚洲国产精品一区二区| 女仆av观看一区| 亚洲欧洲成人精品av97| 亚洲a级在线观看| 久久免费精彩视频| 国产精品美女久久久久久不卡| 国产亚洲欧美日韩在线一区| 国产久一一精品| 午夜国产小视频| 欧美亚洲国产日韩| 欧美日韩一本到| 日韩亚洲欧美视频| av资源种子在线观看| 国产精品18久久久久久久久久久久 | 尤物tv国产一区| 成人免费播放视频| 国产精品久久久久久久久免费高清| 99久久久精品免费观看国产蜜| 欧美日韩国产第一页| 国产毛片久久久久久久| 9999在线精品视频| 91久久人澡人人添人人爽欧美| 欧美日本亚洲| 亚洲风情第一页| 看国产成人h片视频| 91大神在线播放精品| 亚洲国产精品免费在线观看| 精品视频久久| 精品夜色国产国偷在线| 岛国精品一区二区三区| 男女啪啪999亚洲精品| 日韩欧美亚洲范冰冰与中字| 99久久免费观看| 国产激情在线| 亚洲国产精品黑人久久久| 久久国产精品亚洲va麻豆| 性欧美一区二区三区| 麻豆91在线播放免费| 国产成人高清激情视频在线观看| 国精产品一区一区| 精品久久久中文字幕| 精品丝袜一区二区三区| xxxx黄色片| 国产精品巨作av| 精品国产乱码久久久久久久| 伊人五月天婷婷| 国产成人福利夜色影视| 一本色道久久综合精品竹菊| 青娱乐自拍偷拍| 91色国产在线| 国产视频一二三四区| 蜜臀av国产精品久久久久| 欧美综合在线观看| 天堂中文在线网| 久久国产精品亚洲77777| 欧美在线视频网| 永久免费无码av网站在线观看| 一呦二呦三呦国产精品| 日韩电视剧在线观看免费网站| 精品少妇无遮挡毛片| 日本免费一区二区三区四区| 色成年激情久久综合| 99视频免费播放| aaaa欧美| 777xxx欧美| 国产精品久久久久野外| 北条麻妃一区二区三区在线观看| 一本一道综合狠狠老| 成人免费无码av| 福利一区二区| 欧美久久高跟鞋激| 日本黄色www| 久久97精品| 亚洲丝袜av一区| 一级免费黄色录像| 狠狠色丁香久久综合频道| 午夜欧美不卡精品aaaaa| yjizz国产| 麻豆成人综合网| 高清视频一区| 九色在线免费| 中文字幕日韩欧美一区二区三区| 欧美在线视频二区| yw视频在线观看| 亚洲精品久久嫩草网站秘色| 成年人网站国产| 97精品国产综合久久久动漫日韩| 亚洲电影第三页| 成人中文字幕av| 高清一区二区中文字幕| 亚洲国产精品久久久久久| 亚洲日本精品视频| 成人3d动漫在线观看| 欧美日韩成人网| 欧美日韩综合在线观看| 久久99蜜桃精品| 精品国产一区二区三| 求av网址在线观看| 精品日本美女福利在线观看| 奇米视频888| 日本精品影院| 欧美精品在线视频观看| 中文字幕在线欧美| 国产**成人网毛片九色| 色999五月色| 极品视频在线| 日韩一区二区三区电影在线观看 | 91禁在线看| 欧洲亚洲国产日韩| av av在线| 五月天激情综合网| 国产成人久久精品| 丰满人妻av一区二区三区| 国产精品全国免费观看高清| 色综合久久久久无码专区| 国产精品日韩精品在线播放| 亚洲人高潮女人毛茸茸| 国产精品theporn动漫| 全国精品久久少妇| 免费在线成人av| 1区2区3区在线| 91精品国产色综合久久ai换脸| 一二三av在线| 欧美日韩在线网站| 91成人性视频| 日韩一区二区三区在线观看视频 | 国产一区精品视频| 成人在线播放免费观看| 欧美网站大全在线观看| 久久久久亚洲av无码专区桃色| 亚洲v天堂v手机在线| 国模精品系列视频| 国产免费无遮挡| 中文字幕一区二区三区在线播放 | 老女人性淫交视频| 美女久久久精品| 日本欧美精品久久久| 老司机2019福利精品视频导航| 欧美视频完全免费看| 久久人人妻人人人人妻性色av| 久久99高清| 欧美在线视频a| 日本在线丨区| 欧美日韩亚洲视频一区| 天堂www中文在线资源| 欧美久色视频| 高清不卡日本v二区在线| 日本理论片午伦夜理片在线观看| 大伊人狠狠躁夜夜躁av一区| 91超薄肉色丝袜交足高跟凉鞋| 国产99精品| 国产成人精品av| 国产露出视频在线观看| 在线区一区二视频| www亚洲色图| 久久99精品久久久久婷婷| 天天干天天色天天爽| 精品国产一区二区三区性色av| 亚洲精品suv精品一区二区| 天天鲁一鲁摸一摸爽一爽| 黑人精品欧美一区二区蜜桃 | 日本中文字幕不卡免费| 无码国产伦一区二区三区视频| 国产精品天美传媒| 欧美精品性生活| 久久久久久久久丰满| 91中文字精品一区二区| av手机免费在线观看| 日韩精品在线视频| 男人天堂视频网| 亚洲欧洲韩国日本视频| 欧美xxxxx少妇| 性感少妇一区| 亚洲制服中文| gogo久久日韩裸体艺术| 欧洲亚洲免费在线| av在线免费观看网站| 91精品国产色综合久久ai换脸 | 女王人厕视频2ⅴk| 欧美亚韩一区| 日本精品一区二区三区高清 久久| 阿v视频在线| 亚洲人成啪啪网站| 国产乱人乱偷精品视频a人人澡| 久久久久久久久久久久久女国产乱 | 99免费视频观看| 综合久久精品| 美女一区视频| 国产精品va视频| 欧美又大又硬又粗bbbbb| 国产九色在线| 欧美精品一区二区三区一线天视频| 性色av无码久久一区二区三区| 男女性色大片免费观看一区二区| 精品一区二区三区视频日产| 开心久久婷婷综合中文字幕| 亚州国产精品久久久| 婷婷在线视频| 亚洲国产精品国自产拍av秋霞| 国产网站在线看| 国产精品视频麻豆| 国产人成视频在线观看| 久久99久久久欧美国产| 欧美变态另类刺激| 欧美午夜免费影院| 亚洲一区免费看| 综合综合综合综合综合网| 亚洲综合成人婷婷小说| 国产电影一区二区三区爱妃记| 亚洲视频999| 亚洲第一天堂网| 在线不卡的av| 精品国产www| 五月天视频一区| 欧美三根一起进三p| 国产精品女主播av| 精品久久久久久中文字幕人妻最新| 六月婷婷一区| 日本手机在线视频| 欧美激情自拍| 影音先锋男人的网站| 色综合狠狠操| 视频二区一区| 国产一区二区三区网| 精品乱子伦一区二区三区| 日韩成人久久| 91老司机在线| 91成人福利社区| 国产欧美 在线欧美| 蜜桃麻豆影像在线观看| 孩xxxx性bbbb欧美| 污视频网站免费在线观看| 久久色精品视频| 免费的黄网站在线观看| 久久精品免费电影| 日本激情在线观看| 日韩视频免费观看| 巨大荫蒂视频欧美另类大| 日韩一区二区三区国产| 日本暖暖在线视频| 中文字幕久久久| 亚洲成人三级| 日韩综合视频在线观看| 日本在线免费| 久热在线中文字幕色999舞| 看女生喷水的网站在线观看| 欧美成人h版在线观看| av网址在线| 久久久久久综合网天天| xxx在线免费观看| 97久久国产精品| 三级在线观看视频| 国产不卡一区二区在线播放| 在线观看精品| 国产日韩在线免费| 国产aa精品| 国产尤物91| 欧美禁忌电影| 日韩wuma| **女人18毛片一区二区| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 欧美 日韩 国产 成人 在线观看| 国产精品中文有码| 丰满人妻一区二区三区53视频| 久久精品亚洲| 一本色道久久亚洲综合精品蜜桃| 亚洲免费激情| 99久久国产宗和精品1上映| 美女高潮久久久| 亚洲熟妇一区二区| 成人动漫精品一区二区| 亚洲av综合一区二区| 国产精品天天看| 久久午夜无码鲁丝片| 亚洲福利视频导航| 亚洲 国产 日韩 欧美| 日韩视频一区二区在线观看| 手机看片一区二区三区| 国产亚洲xxx| 18+激情视频在线| 欧美一区三区三区高中清蜜桃| 波多一区二区| 日韩美女写真福利在线观看| 亚洲精品aa| 精品欧美一区二区三区久久久| 亚洲日本va中文字幕| 蜜桃狠狠色伊人亚洲综合网站| 红杏一区二区三区| 色爱区成人综合网| 极品av少妇一区二区| 熟妇人妻无乱码中文字幕真矢织江| 国产精品久久久久久模特| 国产视频一区二区视频| 国产精品一二三四五| 国产精品成人一区二区三区电影毛片 | 色综合中文综合网| 国产偷人妻精品一区二区在线| 欧美美女直播网站| 日本久久一级片| 久久精品中文字幕免费mv| 精精国产xxx在线视频app| 国产在线观看不卡| 亚洲理论电影片| 浴室偷拍美女洗澡456在线| 老牛影视一区二区三区| 亚洲乱妇老熟女爽到高潮的片| 粉嫩嫩av羞羞动漫久久久| 人妻视频一区二区| 精品福利免费观看| 国产乱人乱偷精品视频a人人澡| 欧美一级精品大片| 18视频免费网址在线观看| 97久久超碰福利国产精品…| 狂野欧美xxxx韩国少妇| 欧美日韩综合精品| 亚洲综合精品四区| 国产一级二级av| 国产精品久久久久久久久果冻传媒| 5566中文字幕| 日本乱码高清不卡字幕| 无码国产色欲xxxx视频| 久久99亚洲热视| 超碰国产精品一区二页| 欧美1o一11sex性hdhd| 黄色av日韩| 稀缺呦国内精品呦| 亚洲精品免费电影| 国产人妻精品一区二区三区| 最近中文字幕日韩精品| 久久久成人av毛片免费观看| 欧美性xxxx69| 免费一级欧美片在线播放| 在线免费观看污视频| 亚洲成年人影院| 人成网站在线观看| 97色在线观看| 日韩母乳在线| 凹凸国产熟女精品视频| 99久久99久久久精品齐齐| 黄网站免费在线| 亚洲成人精品久久久| www555久久| 国产一区二区高清视频| 亚洲国产1区| 香港三日本8a三级少妇三级99| 久久久91精品国产一区二区精品 | 六十路在线观看| 欧亚精品在线观看| 九一精品国产| jizz大全欧美jizzcom| 国产精品欧美一区二区三区| 92久久精品一区二区| 日日狠狠久久偷偷四色综合免费| 国产理论在线| 精品综合久久| 老司机精品视频网站| 亚洲综合第一区| 91精品国产综合久久福利| 天天色天天射天天综合网| 成人区精品一区二区| 99人久久精品视频最新地址| 黄色正能量网站| 在线精品视频小说1| 色开心亚洲综合| www国产亚洲精品| 亚洲综合电影一区二区三区| 国产午夜精品福利视频| 777a∨成人精品桃花网| 波多野结衣在线高清| 欧美一区二区福利| 精品一区二区在线播放| 日本三级视频在线| 在线观看不卡av| 欧美成年网站| 欧美在线观看成人| 国产精品美女久久久久av爽李琼 | 自拍亚洲图区| 精品欧美日韩在线| 日本不卡高清视频| 久久久久无码国产精品不卡| 亚洲欧美日韩区| 91精品在线免费视频| 国产69精品久久久久久久| 国产精品嫩草影院com| 手机看片福利在线| 91九色综合久久| 午夜在线播放视频欧美| 亚洲天堂网av在线| 日韩成人中文电影| www.久久久久爱免| 六月丁香婷婷激情| 亚洲欧美另类久久久精品2019| 中文字幕精品一区二| 欧美成人在线免费视频| 要久久电视剧全集免费 | 九九热在线视频观看这里只有精品| www.色天使| 日韩精品一区二区三区中文不卡 | 性欧美疯狂xxxxbbbb| av在线免费观看网站|