月度归档:2014年08月

HTML5表单验证有效状态对象

HTML5增加对表单内容类型验证的支持,而通过js获取验证有效状态的API就是ValidityState对象。

获取该对象方法:

var input = document.createElement('input');
console.info(input.validity)

浏览器支持度见: http://caniuse.com/#feat=form-validation

那么由此我们就可以写出更简单的验证框架。该对象拥有的属性如下:
Continue reading HTML5表单验证有效状态对象

JavaScript实现一个单程双向工作流

初衷源于项目中上一步,下一步这种交互需求,而每一步有可能或全部是异步操作,而且会有数据临时存储与获取的需要。

考虑了一些方案,受requirejs,seajs实现的启发,最终实现了这个单程双向工作流对象,而其源码看似相当简单。

那么怎么使用呢?当var flow = new Flow()实例化一个工作流以后,可以调用如下API实现:

1、流程添加API 3个:

// 参数action是一个function回调,比如
// function(i, data) {}
// i是当前步骤的索引,从0开始
// data是所有步骤存储的数据数组,因为本工作流提供数据存储,也自然提供获取
// data[i]即 第i步的数据
// action中的this指向为flow实例对象
flow.start(action); // start其实内部实现为调用next方法,因此start等同于next,其存在价值大概是为了语义
flow.next(action);  // next,添加下一步action
flow.done(action);  // done,完成所有步骤,该方法也是启动整个工作流的必须方法,也必须是最后调用。

Continue reading JavaScript实现一个单程双向工作流