JQuery EasyUi之界面设计——通用的JavaScript(二)

 

所谓磨刀不误砍柴工,先写点通用的代码,后面开发起来效率就高多了。多余的话就不敲了,先简单介绍介绍吧。


时间格式化

对于序列化JSON,我喜欢用JSON.NET,为了方便,我定义了一个扩展方法,如下面代码:

   1:          /// <summary>
   2:          /// 将对象序列化为JSON数据
   3:          /// </summary>
   4:          /// <param name="instance"></param>
   5:          /// <returns></returns>
   6:          public static string ToJson(this object instance)
   7:          {
   8:              return JsonConvert.SerializeObject(instance);
   9:          }

那么序列化JOSN输出那么就方便多了,如下面代码:

   1:                                      var info = from a in db.TB_KTVAndConcert
   2:                                                 join b in db.TB_City on a.Cityid equals b.ID
   3:                                                 where a.AttributeCode == "AttrubuteCode".GetRequest()
   4:                                                 orderby a.Cityid
   5:                                                 select new
   6:                                                 {
   7:                                                     a.CreateDate,
   8:                                                     a.Defaultflag,
   9:                                                     a.ID,
  10:                                                     a.Name,
  11:                                                     a.Cityid,
  12:                                                     b.CityName,
  13:                                                     a.Displayindex
  14:                                                 };
  15:                                      if ("CityID".GetRequest().IsNotEmpty())
  16:                                      {
  17:                                          if (MyRegex.IsNumberRegex("CityID".GetRequest()))
  18:                                          {
  19:                                              int cityId = Convert.ToInt32("CityID".GetRequest());
  20:                                              info = info.Where(p => p.Cityid == cityId);
  21:                                          }
  22:                                      }
  23:                                      context.Response.Write(info.OrderByDescending(p => p.Defaultflag).ThenBy(p => p.Displayindex).ToJson());

序列化JSON是可以了,但是前台显示DateTime类型数据时显示就有问题了,也就是获取不到想要的格式化字符串。解决这个问题有两种方式,方式一就是定义一个C#方法来返回格式化时间字符串,关键部分代码如下:

   1:                                                 select new
   2:                                                 {
   3:                                                     CreateDate = a.CreateDate.GetDateTimeString(),
   4:                                                     a.Defaultflag,
   5:                                                     a.ID,
   6:                                                     a.Name,
   7:                                                     a.Cityid,
   8:                                                     b.CityName,
   9:                                                     a.Displayindex
  10:                                                 };

这样虽然可以,但是如果我想统一在浏览器端处理呢?于是封装下面的函数:

   1:  //时间格式化
   2:  Date.prototype.format = function (format) {
   3:      if (!format) {
   4:          format = "yyyy-MM-dd hh:mm:ss";
   5:      }
   6:      var o = {
   7:          "M+": this.getMonth() + 1, // month
   8:          "d+": this.getDate(), // day
   9:          "h+": this.getHours(), // hour
  10:          "m+": this.getMinutes(), // minute
  11:          "s+": this.getSeconds(), // second
  12:          "q+": Math.floor((this.getMonth() + 3) / 3), // quarter
  13:          "S": this.getMilliseconds()
  14:          // millisecond
  15:      };
  16:      if (/(y+)/.test(format)) {
  17:          format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  18:      }
  19:      for (var k in o) {
  20:          if (new RegExp("(" + k + ")").test(format)) {
  21:              format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
  22:          }
  23:      }
  24:      return format;
  25:  };
  26:  function fomatDate(str) {
  27:      return (new Date(parseInt(str.substring(str.indexOf('(') + 1, str.indexOf(')'))))).format("yyyy-MM-dd hh:mm:ss");
  28:  }

  前台调用:

   1:          function formatCreateDate(value, row, index) {
   2:   
   3:              return fomatDate(row.CreateDate);
   4:   
   5:          }

显示效果:


消息框

弹出框以及系统消息框

   1:  function showMsg(title, msg, isAlert) {
   2:      if (isAlert !== undefined && isAlert) {
   3:          $.messager.alert(title, msg);
   4:      } else {
   5:          $.messager.show({
   6:              title: title,
   7:              msg: msg,
   8:              showType: 'show'
   9:          });
  10:      }
  11:  }

 

确认框

   1:  function showConfirm(title, msg, callback) {
   2:      $.messager.confirm(title, msg, function (r) {
   3:          if (r) {
   4:              if (jQuery.isFunction(callback))
   5:                  callback.call();
   6:          }
   7:      });
   8:  }

进度框

   1:  function showProcess(isShow, title, msg) {
   2:      if (!isShow) {
   3:          $.messager.progress('close');
   4:          return;
   5:      }
   6:      var win = $.messager.progress({
   7:          title: title,
   8:          msg: msg
   9:      });
  10:  }

例如在表单提交时,为了防止重复提交,会显示一个进度框。提交完成时,关闭进度框并提示操作信息:

   1:  function submitForm(url) {
   2:      $('#ff').form('submit', {
   3:          url: (url === undefined ? "/Ajax/Common.ashx" : url) + "?Type=" + typeCode,
   4:          onSubmit: function () {
   5:              var flag = $(this).form('validate');
   6:              if (flag) {
   7:                  showProcess(true, '温馨提示', '正在提交数据...');
   8:              }
   9:              return flag
  10:          },
  11:          success: function (data) {
  12:              showProcess(false);
  13:              if (data == 1) {
  14:                  top.showMsg('温馨提示', '提交成功!');
  15:                  if (parent !== undefined) {
  16:                      if ($.isFunction(window.reloadParent)) {
  17:                          reloadParent.call();
  18:                      } else {
  19:                          parent.$("#tt").datagrid('reload');
  20:                          parent.closeMyWindow();
  21:                      }
  22:                  }
  23:              } else {
  24:                  $.messager.alert('温馨提示', data);
  25:              }
  26:          },
  27:          onLoadError: function () {
  28:              showProcess(false);
  29:              $.messager.alert('温馨提示', '由于网络或服务器太忙,提交失败,请重试!');
  30:          }
  31:      });
  32:  }
关键页面代码如下:
   1:      <div class="easyui-layout" style="text-align: left; height: 270px;" fit="true">
   2:   
   3:          <div region="center" border="false" style="padding: 10px; background: #fff; border: 1px solid #ccc;">
   4:   
   5:              <form id="ff" method="post">
   6:   
   7:              <input type="hidden" name="id" value="" />
   8:   
   9:              <table border="0" cellpadding="0" cellspacing="0">
  10:   
  11:                  <tr>
  12:   
  13:                      <td>
  14:   
  15:                          <label for="AdminLogin">
  16:   
  17:                              登录名:</label>
  18:   
  19:                      </td>
  20:   
  21:                      <td>
  22:   
  23:                          <input class="easyui-validatebox" style="width: 300px;" type="text" required="true"
  24:   
  25:                              validtype="length[0,20]" name="AdminLogin"></input>
  26:   
  27:                      </td>
  28:   
  29:                  </tr>
  30:   
  31:                  <tr>
  32:   
  33:                      <td>
  34:   
  35:                          <label for="RoleID">
  36:   
  37:                              所属角色:</label>
  38:   
  39:                      </td>
  40:   
  41:                      <td>
  42:   
  43:                          <input class="easyui-combobox" valuefield="ID" textfield="RoleName" panelheight="auto"
  44:   
  45:                              editable="false" style="width: 300px;" url="/Ajax/Common.ashx?Type=GetRoles"
  46:   
  47:                              required="true" name="RoleID"></input>
  48:   
  49:                      </td>
  50:   
  51:                  </tr>
  52:   
  53:                  <tr>
  54:   
  55:                      <td colspan="2" style='color: Red'>
  56:   
  57:                          在编辑时,输入管理员密码表示重新设置密码。
  58:   
  59:                      </td>
  60:   
  61:                  </tr>
  62:   
  63:                  <tr>
  64:   
  65:                      <td>
  66:   
  67:                          <label for="AdminPassword">
  68:   
  69:                              密码:</label>
  70:   
  71:                      </td>
  72:   
  73:                      <td>
  74:   
  75:                          <input class="easyui-validatebox" style="width: 300px;" type="text" validtype="length[6,20]"
  76:   
  77:                              id='txtPassword' name="AdminPassword"></input>
  78:   
  79:                      </td>
  80:   
  81:                  </tr>
  82:   
  83:                  <tr>
  84:   
  85:                      <td>
  86:   
  87:                          <label for="AdminPassword2">
  88:   
  89:                              确认密码:</label>
  90:   
  91:                      </td>
  92:   
  93:                      <td>
  94:   
  95:                          <input class="easyui-validatebox" style="width: 300px;" type="text" validtype="length[6,20]"
  96:   
  97:                              id='txtPassword2' name="AdminPassword2"></input>
  98:   
  99:                      </td>
 100:   
 101:                  </tr>
 102:   
 103:                  <tr>
 104:   
 105:                      <td>
 106:   
 107:                          <label for="Defatulflag">
 108:   
 109:                              是否上架:</label>
 110:   
 111:                      </td>
 112:   
 113:                      <td>
 114:   
 115:                          <input type="checkbox" name="Defatulflag" class="easyui-validatebox" type="text"
 116:   
 117:                              required="true" value="1" />
 118:   
 119:                      </td>
 120:   
 121:                  </tr>
 122:   
 123:              </table>
 124:   
 125:              </form>
 126:   
 127:          </div>
 128:   
 129:          <div region="south" border="false" style="text-align: right; padding: 5px 5px 5px 0;">
 130:   
 131:              <a class="easyui-linkbutton" iconcls="icon-save" href="javascript:void(0)" onclick="javascript:submitForm();">
 132:   
 133:                  提交</a> 
 134:   
 135:          </div>
 136:   
 137:      </div>
 138:   
 139:      <script type="text/javascript">
 140:   
 141:          $(function () {
 142:   
 143:              if (autoLoad == 1) {
 144:   
 145:                  $('#txtPassword').keypress(function () {
 146:   
 147:                      if ($(this).val().length > 0) {
 148:   
 149:                          $('#txtPassword2').validatebox({
 150:   
 151:                              required: true
 152:   
 153:                          });
 154:   
 155:                      }
 156:   
 157:                  }).change(function () {
 158:   
 159:                      if ($(this).val().length > 0) {
 160:   
 161:                          $('#txtPassword2').validatebox({
 162:   
 163:                              required: true
 164:   
 165:                          });
 166:   
 167:                      } else {
 168:   
 169:                          $('#txtPassword2').validatebox({
 170:   
 171:                              required: false
 172:   
 173:                          });
 174:   
 175:                      }
 176:   
 177:                  });
 178:   
 179:   
 180:   
 181:              } else {
 182:   
 183:                  $('#txtPassword,#txtPassword2').validatebox({
 184:   
 185:                      required: true
 186:   
 187:                  }); ;
 188:   
 189:              }
 190:   
 191:          });
 192:   
 193:      </script>
 194:   

 

效果如下:


窗口

窗口是用的非常频繁的,显示窗口:

   1:  $(function () {
   2:      $('body').append('<div id="myWindow" class="easyui-dialog" closed="true"></div>');
   3:  });
   4:  function showMyWindow(title, href, width, height, modal, minimizable, maximizable) {
   5:      $('#myWindow').window({
   6:          title: title,
   7:          width: width === undefined ? 600 : width,
   8:          height: height === undefined ? 400 : height,
   9:          content: '<iframe scrolling="yes" frameborder="0"  src="' + href + '" style="width:100%;height:98%;"></iframe>',
  10:          //        href: href === undefined ? null : href,
  11:          modal: modal === undefined ? true : modal,
  12:          minimizable: minimizable === undefined ? false : minimizable,
  13:          maximizable: maximizable === undefined ? false : maximizable,
  14:          shadow: false,
  15:          cache: false,
  16:          closed: false,
  17:          collapsible: false,
  18:          resizable: false,
  19:          loadingMessage: '正在加载数据,请稍等片刻......'
  20:      });
  21:  }

 

关闭窗口:

 

   1:  function closeMyWindow() {
   2:      $('#myWindow').window('close');
   3:  }
使用方式如下:
   1:          function onDataGridDblClickRow(rowIndex, rowData) {
   2:   
   3:              edit();
   4:   
   5:          }
   6:   
   7:          function addType() {
   8:   
   9:              showMyWindow('用户管理 | 新建', '/WebPages/RoleManagement/AdminUser_Add.aspx', 600, 320)
  10:   
  11:          }
  12:   
  13:          function edit() {
  14:   
  15:              var row = $('#tt').datagrid('getSelected');
  16:   
  17:              if (row) {
  18:   
  19:                  showMyWindow('用户管理 | 编辑', '/WebPages/RoleManagement/AdminUser_Add.aspx?ID=' + row.ID + '&autoLoad=1', 600, 320)
  20:   
  21:              } else {
  22:   
  23:                  showMsg("温馨提示", "请选择一行!");
  24:   
  25:              }
  26:   
  27:          }
窗口弹出有本页弹出,有时由于框架页太小,经常会使用顶层窗口弹出,如:
   1:          function showSetPicWindow(adname, id) {
   2:   
   3:              top.showMyWindow(adname + " | 广告图设置", '/WebPages/ADManagement/ADPicturesManagement.aspx?TypeCode=ADPictures&ID=' + id + '&ATCode=KTVAdvert', 707, 440);
   4:   
   5:          }

效果如下:


表单

一个系统总是不乏表单的,自然表单的提交与赋值自然是频繁的。如果使用C#,可以通过反射减少工作量,但是我更趋向把工作量留给前台。比如提交:

   1:  function submitForm(url) {
   2:      $('#ff').form('submit', {
   3:          url: (url === undefined ? "/Ajax/Common.ashx" : url) + "?Type=" + typeCode,
   4:          onSubmit: function () {
   5:              var flag = $(this).form('validate');
   6:              if (flag) {
   7:                  showProcess(true, '温馨提示', '正在提交数据...');
   8:              }
   9:              return flag
  10:          },
  11:          success: function (data) {
  12:              showProcess(false);
  13:              if (data == 1) {
  14:                  top.showMsg('温馨提示', '提交成功!');
  15:                  if (parent !== undefined) {
  16:                      if ($.isFunction(window.reloadParent)) {
  17:                          reloadParent.call();
  18:                      } else {
  19:                          parent.$("#tt").datagrid('reload');
  20:                          parent.closeMyWindow();
  21:                      }
  22:                  }
  23:              } else {
  24:                  $.messager.alert('温馨提示', data);
  25:              }
  26:          },
  27:          onLoadError: function () {
  28:              showProcess(false);
  29:              $.messager.alert('温馨提示', '由于网络或服务器太忙,提交失败,请重试!');
  30:          }
  31:      });
  32:  }

值得说明的是:

  1. typeCode来自母版页,为页面名。
  2. url为提交的URL。
  3. onSubmit事件会触发表单验证,如果验证通过会显示提交进度遮罩层。如果觉得不够用,可以自己扩展。
  4. success事件会关闭进度,如果提交成功会显示成功提示,如果存在父窗口,会刷新父页面DataGrid并且关闭当前窗口。当然也可以实现reloadParent函数来个性化处理。
  5. 表单id和DataGrid的id都是固定的,如果没有效果请检查id。
  6. 关于表单的这里只写了提交,赋值的代码写在母版页了,以后再说。

页面html的提交代码如下:

   1:  <a class="easyui-linkbutton" iconcls="icon-save" href="javascript:void(0)" onclick="javascript:submitForm('/Ajax/ShortMMS_Common.ashx');">
   2:                  提交</a>

 

有些页面可能刷新DataGrid还不够,需要刷新页面,于是可以使用下面的JS:

   1:      <script type="text/javascript">
   2:          function reloadParent() {
   3:              top.showProcess(false);
   4:              parent.showMsg('温馨提示', '提交成功');
   5:              parent.document.location.reload();
   6:          }
   7:      </script>

最后,附上完整的JS代码:

   1:  //时间格式化
   2:  Date.prototype.format = function (format) {
   3:      if (!format) {
   4:          format = "yyyy-MM-dd hh:mm:ss";
   5:      }
   6:      var o = {
   7:          "M+": this.getMonth() + 1, // month
   8:          "d+": this.getDate(), // day
   9:          "h+": this.getHours(), // hour
  10:          "m+": this.getMinutes(), // minute
  11:          "s+": this.getSeconds(), // second
  12:          "q+": Math.floor((this.getMonth() + 3) / 3), // quarter
  13:          "S": this.getMilliseconds()
  14:          // millisecond
  15:      };
  16:      if (/(y+)/.test(format)) {
  17:          format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  18:      }
  19:      for (var k in o) {
  20:          if (new RegExp("(" + k + ")").test(format)) {
  21:              format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
  22:          }
  23:      }
  24:      return format;
  25:  };
  26:  function fomatDate(str) {
  27:      return (new Date(parseInt(str.substring(str.indexOf('(') + 1, str.indexOf(')'))))).format("yyyy-MM-dd hh:mm:ss");
  28:  }
  29:  function showMsg(title, msg, isAlert) {
  30:      if (isAlert !== undefined && isAlert) {
  31:          $.messager.alert(title, msg);
  32:      } else {
  33:          $.messager.show({
  34:              title: title,
  35:              msg: msg,
  36:              showType: 'show'
  37:          });
  38:      }
  39:  }
  40:  $(function () {
  41:      $('body').append('<div id="myWindow" class="easyui-dialog" closed="true"></div>');
  42:  });
  43:  function showMyWindow(title, href, width, height, modal, minimizable, maximizable) {
  44:      $('#myWindow').window({
  45:          title: title,
  46:          width: width === undefined ? 600 : width,
  47:          height: height === undefined ? 400 : height,
  48:          content: '<iframe scrolling="yes" frameborder="0"  src="' + href + '" style="width:100%;height:98%;"></iframe>',
  49:          //        href: href === undefined ? null : href,
  50:          modal: modal === undefined ? true : modal,
  51:          minimizable: minimizable === undefined ? false : minimizable,
  52:          maximizable: maximizable === undefined ? false : maximizable,
  53:          shadow: false,
  54:          cache: false,
  55:          closed: false,
  56:          collapsible: false,
  57:          resizable: false,
  58:          loadingMessage: '正在加载数据,请稍等片刻......'
  59:      });
  60:  }
  61:  function closeMyWindow() {
  62:      $('#myWindow').window('close');
  63:  }
  64:  function submitForm(url) {
  65:      $('#ff').form('submit', {
  66:          url: (url === undefined ? "/Ajax/Common.ashx" : url) + "?Type=" + typeCode,
  67:          onSubmit: function () {
  68:              var flag = $(this).form('validate');
  69:              if (flag) {
  70:                  showProcess(true, '温馨提示', '正在提交数据...');
  71:              }
  72:              return flag
  73:          },
  74:          success: function (data) {
  75:              showProcess(false);
  76:              if (data == 1) {
  77:                  top.showMsg('温馨提示', '提交成功!');
  78:                  if (parent !== undefined) {
  79:                      if ($.isFunction(window.reloadParent)) {
  80:                          reloadParent.call();
  81:                      } else {
  82:                          parent.$("#tt").datagrid('reload');
  83:                          parent.closeMyWindow();
  84:                      }
  85:                  }
  86:              } else {
  87:                  $.messager.alert('温馨提示', data);
  88:              }
  89:          },
  90:          onLoadError: function () {
  91:              showProcess(false);
  92:              $.messager.alert('温馨提示', '由于网络或服务器太忙,提交失败,请重试!');
  93:          }
  94:      });
  95:  }
  96:  function deleteConfirm() {
  97:      return showConfirm('温馨提示', '确定要删除吗?');
  98:  }
  99:  function showConfirm(title, msg, callback) {
 100:      $.messager.confirm(title, msg, function (r) {
 101:          if (r) {
 102:              if (jQuery.isFunction(callback))
 103:                  callback.call();
 104:          }
 105:      });
 106:  }
 107:  function showProcess(isShow, title, msg) {
 108:      if (!isShow) {
 109:          $.messager.progress('close');
 110:          return;
 111:      }
 112:      var win = $.messager.progress({
 113:          title: title,
 114:          msg: msg
 115:      });
 116:  }
 117:   

 

这篇就写到这里吧。如有不足之处,还望大家补充。累了,就先写到这里了。

时间: 2024-09-29 15:14:00

JQuery EasyUi之界面设计——通用的JavaScript(二)的相关文章

JQuery EasyUi之界面设计——前言与界面效果(一)

如果冯巩的开场白是"观众朋友们,我想死你们了",那么我的开场白是"最近一直很忙,很久没有发文了". 前面说过了EXT.NET,这里顺便再说说JQuery EasyUI.为啥我会选择JQuery EasyUI呢?主要有以下几点: 轻量级. 基本的组件都用,即"麻雀虽小五脏俱全". 使用简洁方便,比如支持html+js. 可扩展性. 可维护性.世上没有完美的产品,而且其对IE6的兼容性还存在一些问题,但相比extjs,其还是很方便阅读和修改的. 简单

JQuery EasyUi之界面设计——母版页以及Ajax的通用处理(三)

前面介绍过JS了,就这样个人认为还不够用. 因为JS文件是死的,无法使用服务器代码,自然不够灵活.那么通过母版页就完善了这一点.那么下面举一个例子--控件赋值. 控件赋值 前面说过easyui的form自带验证.提交.重置与赋值,那么如何利用这个赋值呢?千篇一律的写赋值代码总是那么的令人厌烦,尤其是元素比较多的时候,用反射嘛又怕别人诟病,那么就用JS来负责这一切吧. 那么如何做到通用呢?那母版页就是不错的选择. 下面贴出母版页完整代码: 1: <%@ Master Language="C#

angular + easyui做界面验证

angular结合easyui这事其实并不是很合适,因为:angular的特点之一是双向绑定,页面元素与页面逻辑之间解耦:easyui是对页面元素进行封装,甚至一些组件是隐藏了原本的dom元素,初始化时创建新的元素来实现功能的.在某种程度上来说,angular和easyui在工作原理上是冲突的,当然,下面就是但是了,不然就不太好往下写了.  但是,easyui的验证控件validatebox的验证控件提示明显,UI效果比较友好,而且不会影响angular的正常工作,所以我对用这两个结合做验证非常

19个免费的UI界面设计工具及资源

原文:http://www.oschina.net/news/16602/19-free-ui-design-tools-toolkits-and-resources-for-designers 开源中国社区刚发布了一篇<21个免费的UI界面设计工具.资源及网站>,介绍了免费的Web UI.移动UI.线框工具等.作为该文章的续篇,本文再介绍19个免费UI设计工具及资源,目的同样是帮助你通过发现新的.完美的工具来学习新的技能. 列表如下: DHTMLX DHTMLX 是一个JavaScript库

jquery easyui 的dialog怎么样在里面加载一个页面,页面的的数据从数据库返回出来

问题描述 jquery easyui 的dialog怎么样在里面加载一个页面,页面的的数据从数据库返回出来 如图 解决方案 嵌套iframe,或者用jquery加载网页到divhttp://blog.csdn.net/linlin_juejue/article/details/8211291 解决方案二: AJAX JSON返回,写一个查询的函数 解决方案三: jquery easyui dialog可以两种方式使用: 第一种: 1.定义div,使用iframe 解决方案四: dialog+da

《jQuery EasyUI开发指南》——导读

前言 我们都知道,Java语言本身有专注于后端的特点.如果使用Java语言来开发项目,可以把Java代码嵌入前端中来.但实际上,专业人士并不提倡这么做.因为前端的开发就应该由前端语言来做,后端的开发就应该由后端语言来做,这样可以降低耦合性,也能防止代码混乱产生的问题. 在前端开发方面,现在诞生了很多开发框架.一般来说,前端开发工程师需要掌握的技能有HTML.CSS.JavaScript等,以及符合W3C规则的编程规范,但掌握了这些技能还是远远不够的,尤其是在Web技术迅猛发展.日新月异的今天.

jQuery Easyui快速入门教程_jquery

1.什么是JQuery EasyUI jQuery EasyUI是一组基于JQuery的UI插件集合,而JQueryEasyUI的目标就是帮助开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的JavaScript,也不需要对css样式有深入的了解,开发者需要了解的只是一些简单的html标签. 2.学习jQuery EasyUI的条件 因为JQueryEasyUI是基于jQuery的UI库,所以,必须需要JQuery课程的基础. 3.JQuery EasyUI的特点 基于JQu

JQuery+EasyUI轻松实现步骤条效果_jquery

EasyUI 简介 easyui是一种基于jQuery的用户界面插件集合. easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能. 使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面. easyui是个完美支持HTML5网页的完整框架. easyui节省您网页开发的时间和规模. easyui很简单但功能强大的. jQuery EasyUI 提供易于使用的组件,它使 Web 开发人员能快速地在流行的 jQuery 核心和 HTML5

jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法_jquery

先给大家分享数据校验显示效果 Web前端数据校验组件 Web项目中客户端与服务端的交互离不开Form表单,Form表单中最常用的元素莫过于input标签,input标签首先要用的肯定是text文本框啦! input文本框允许用户任意输入,难免会会有用户输入一些不符合规定的数据,此时,在提交之前对数据校验是很有必要的,如果等到提交到服务端再校验就会大大降低用户体验啦. 前端校验有很多现成的组件,比较好用的有 EasyUI 的 validatebox 插件,提示界面做的相当友好,只是validate