1.标准的weui只是一个css皮肤,当然里面有h5特性所以有一些很好的组件,比如时间选择控件、数字输入框(用于手机号等),在ios——微信中可以做到完美的展示。

2.ui框架以手机移动端为优先显示(bootstrape也是的)。样式、风格、功能都是移动为要。一些按钮的效果仅在手机端兼容,在pc端可能会错误或者简配,比如input type="datetime-local"。

3.weui代码、官网、github自己百度,一大把。这里介绍下https://jqweui.cn/。上面有好多官方原版例子、还有扩展例子、包括js等。

4.貌似现在weui、jqweui、react-weui已在vs nuget上,不过我没装。可以试下,省的再手动下载各种css、js等文件了、当然也可以用jqweui里说明的cdn,不过偶尔会cdn挂掉(开发环境就用cdn也无妨)。

5.我用的比较多是tabbar、flex、form、weui-cells,然后就是各种input,js-css控制各种div。

6.第一点也说过,weui只是一套css皮肤+js组件最多(weui.js)。所以,别被官网github上的庞大代码量、gulpfile.js等首次没见过的代码-文件吓到、真正有用的只是如下:

    <link href="@Url.Content("~/Content/example.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/demos.css")" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://cdn.bootcss.com/weui/1.1.2/style/weui.min.css">
<link rel="stylesheet" href="https://cdn.bootcss.com/jquery-weui/1.2.0/css/jquery-weui.min.css"> <script src="https://cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/jquery-weui/1.2.0/js/jquery-weui.min.js"></script>

其中example.css、demos.css不是必须的,其他建议引入的。weui官网使用的js不是jquery、而是zepto.js实际都可以。可能zepto更适合移动端听说。

weui完全可以用于任何web项目:Asp.Net MVC,WebForm、前后端分离的前端项目、vuejs、bootstrape组合。

像tabbar、navbar这种导航组件完全可以放在_LayoutWithTabbar中、引入weui标准css、js、在里面定义导航组件,需要导航栏的一律引用它;无需使用导航组件的页面引入layout.cshtml(比如弹框页面、单页面程序,则只需引入weui标准css、js)。

需要注意的坑:

1.原版weui的一些样式写在了example.css、demos.css,所以有时如果出来的效果和官网的不同、还是用浏览器开发者工具细细看下css。最好也从官网上拷贝2个文件下来。

2.日期组件:<input class="weui-input" type="datetime-local" value="" id="ReservesServiceDt" name="ReservesServiceDt">

这是h5特性,参考http://www.w3school.com.cn/html5/html_5_form_input_types.asp。<input  type="datetime" 在chrome无效 。该组件赋值需要如下代码:

<input type="datetime-local" name="" value="2015-07-19T05:20">   注意:其中赋值的数字都是两位数,不足两位的话需要用0来填充。
参考:
var now = new Date();   //jquery Date()用法:http://www.w3school.com.cn/jsref/jsref_obj_date.asp
now.setDate(now.getDate() + 1); //提前一天预约。设置表单中的初始时间,比当前时间多一天
var str = now.getFullYear() + "-" + fix((now.getMonth() + 1), 2) + "-" + fix(now.getDate(), 2) + "T" + fix(now.getHours(), 2) + ":" + fix(now.getMinutes(), 2);
$("#ReservesServiceDt").val(str);

获取datetime-local input 的值也是"2015-07-19T05:20"。

//ReservesServiceDt参数格式为:2018-03-17T14:23。datetime-local的格式为YYYY-MM-DDTHH:mm:ss,注意日期和时间之间有一个T,这是ISO 8601的标准
//后端需要处理ReservesServiceDt参数格式为格式,即Replace('T',' ')。但最好前端就处理好。但无论哪种实现方式,原理上后端接口的controller 实现一样
//实现1:(较好)这里采用前端处理好的方法、所以采用$("#form").serializeArray()后转json字符串、而不是$("#form").serialize()

参考:http://blog.csdn.net/White_Idiot/article/details/77772568(但有些问题)最终代码参考:

 var formObject = {};
var formData = $("#form").serializeArray();
for (var item in formData) {
formObject[formData[item].name] = formData[item].value;
}
formObject.ReservesServiceDt = ReservesServiceDt.replace('T', ' ');
var formJSON = JSON.stringify(formObject);

另可参考js Date对象文档:http://www.w3school.com.cn/jsref/jsref_obj_date.asp

我的weui测试项目:WeUIMvcApp(是mvc3),https://gitee.com/nlh774/weui 有需要的可以下载来看。应该可以直接运行(VS2012,MVC3,不用数据库)

 

weui开发笔记的更多相关文章

  1. [开发笔记]-未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出【转载自:酷小孩】

    原文地址:http://www.cnblogs.com/babycool/p/3199158.html 今天打算用VisualStudio2012做一个js效果页面测试的时候,打开VS2012新建项目 ...

  2. EasyUI 开发笔记(二)

    接上篇 :EasyUI 开发笔记(一)  (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...

  3. EasyUI 开发笔记(一)

    由于某些原因,在公司做的后台需要改成类似于Ext.js 形式的后台,主要看好其中的 框架布局,以及tab开页面和弹出式内部窗体. 后来看看,改成EasyUI,较Ext.js 库小很多,也便于公司的初级 ...

  4. [Openwrt 项目开发笔记]:Openwrt平台搭建(一)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...

  5. Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例

    引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...

  6. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

  7. 开发笔记:基于EntityFramework.Extended用EF实现指定字段的更新

    今天在将一个项目中使用存储过程的遗留代码迁移至新的架构时,遇到了一个问题——如何用EF实现数据库中指定字段的更新(根据UserId更新Users表中的FaceUrl与AvatarUrl字段)? 原先调 ...

  8. Lucene/Solr搜索引擎开发笔记 - 第1章 Solr安装与部署(Jetty篇)

    一.为何开博客写<Lucene/Solr搜索引擎开发笔记> 本人毕业于2011年,2011-2014的三年时间里,在深圳前50强企业工作,从事工业控制领域的机器视觉方向,主要使用语言为C/ ...

  9. [openwrt 项目开发笔记]: 传送门

    “Openwrt 项目开发笔记”系列传送门: [Openwrt 项目开发笔记]:Openwrt平台搭建(一) (2014-07-11 00:11) [Openwrt 项目开发笔记]:Openwrt平台 ...

随机推荐

  1. ORA-12514 TNS:LISTENER DOES NOT CURRENTLY KNOW OF SERVICE REQUESTED IN CONNE

    对比Oracle服务器地址,端口号,还有实例名(也就是服务名).修改tnsnames.ora  在Oracle客户端的安装目录底下. 然后用sqlplus [用户名]/[密码]@[服务命名] 服务命名 ...

  2. SuperObject生成示例

    var jo,jEntity,jSubEntity: ISuperObject; jaOrder,jaEntity,jaSubEntity: ISuperObject; i,j,entityCount ...

  3. 【C++】C++中的基本内置类型

    基本数据类型 下面这张表是C++支持的基本数据类型 类型 含义 最小尺寸 bool 布尔 未定义 char 字符 8位 wchar_t 宽字符 16位 char16_t Unicode字符 16位 c ...

  4. asp.net mvc 根据浏览器判断,如果是微信浏览器则进行网页授权,否则直接访问

    遇到这个需求,想到的第一点就是,这个肯定是需要写在一个通用的地方.方便调用.一般可以定义个 父类控制器在OnActionExcuting方法执行前写逻辑,先上代码,一边写代码一边讲解: /// < ...

  5. 【RPC】手撸一个简单的RPC框架实现

      涉及技术   序列化.Socket通信.Java动态代理技术,反射机制   角色   1.服务提供者:运行在服务端,是真实的服务实现类   2.服务发布监听者:运行在RPC服务端,1将服务端提供的 ...

  6. C++ 非常量引用无效

    /* 非常量引用无效 */ #include <iostream> using namespace std; /* C++标准的规定:非常量的引用不能指向临时对象: 为了防止给常量或临时变 ...

  7. Javadoc转换chm帮助文档的四种方法总结

    1) 将现有的 html 文件集(比如 api) 制作成chm 文档 http://www.blogjava.net/lishunli/archive/2010/01/07/308618.html 我 ...

  8. js和jquery获取textarea输入的内容

    document.getElementById('textarea').value; $("#textarea").val()

  9. mysql使用druid监控配置

    近一年公司对druid使用频率越来越高了,感觉有必要了解下druid的监控配置,参考文档:https://blog.csdn.net/netdevgirl/article/details/526098 ...

  10. JS的eval函数解密反混淆

    https://www.hhtjim.com/js-decryption-de-obfuscate-eval-function.html JS的eval函数解密反混淆