ic form指令 - Julienedies/brick GitHub Wiki
<section ic-ctrl="loginCtrl">
<form action="#" method="post" target="_top" class="hc form" ic-form="login">
<div class="inline hl">
<div ic-form-field-container="id" class="mt-15">
<input type="text"
name="id"
class="input-text-md"
placeholder="用户名/手机号码/电子邮箱"
ic-form-field="id"
ic-field-rule="id||phone||email"
ic-field-err-tip="请输入有效的用户名/手机号码/电子邮箱."
/>
<p class="tip" ic-role-field-err-tip="id">用户名长度大于5</p>
</div>
<div class="mt-15">
<input type="password"
name="password"
class="input-text-md"
placeholder="密码"
ic-form-field="password"
ic-field-rule="password"
ic-field-err-tip="请输入正确的密码,密码长度大于5"
role="">
<p class="tip" ic-form-field-err-tip="password">密码长度大于5</p>
</div>
<div class="mt-15">
<input type="text"
class="input-text-md"
placeholder="请输入5位数字"
ic-form-field="code"
ic-field-rule="code"
ic-field-err-tip="占位符显示的是错误的,请输入6位数字."
/>
<p class="tip" ic-form-field-err-tip="code">请在占位符显示的数字基础上加1.</p>
</div>
<div class="mt-15">
<input type="text"
class="input-text-md"
placeholder="请输入js"
ic-form-field="f"
ic-field-rule="f"
ic-field-err-tip="请输入js."
/>
</div>
<div class="mt-10">
<label><input type="checkbox"
name="remember"
value="1"
onclick="this.value=this.checked?1:0;"
ic-form-field="remember"
checked> 记住我</label>
</div>
<div class="mt-10">
<button type="button"
class="btn btn-1-1 btn-md-1-1"
ic-form-submit="login"
ic-submit-action="http://www.baidu.com"
ic-submit-method="get"
ic-submit-before="before"
ic-submit-on-done="done"
ic-submit-on-fail="failed"
ic-submit-on-always="always">点击测试提交
</button>
</div>
</div>
</form>
</section>
ic-form @定义了一个dom元素为表单widget容器。
-
ic-form-field @定义了该dom元素为一个表单字段。
-
ic-field-rule @定义了表单字段的验证规则。可选的值有预设的关键字,正则,函数调用,并且可以使用||和&&语法。
-
ic-field-err-tip @定义了表单字段验证失败提示文字
-
ic-form-field-container @可选,定义了一个表单字段容器,子表单字段验证失败的情况下,会添加一个error类。
-
ic-form-field-err-tip @可选,定义了该dom元素为错误提示容器。当验证失败的时候,会显示表单字段验证失败提示文字。
-
ic-field-placeholder @。
-
ic-form-submit @定义了该dom元素为表单提交按钮。
-
ic-submit-action @定义了表单提交按钮的动作。可以是服务url地址,例如
ic-submit-action="/user/login"
或者是一个回调函数,例如ic-submit-action="login()"
-
ic-submit-method @定义了ajax表单提交的类型,如’post,get,put,delete..';默认为post。可以通过brick.set方法定义全局默认提交类型。
-
ic-submit-data-type @定义了ajax接受的响应数据类型。默认为JSON,可以通过brick.set方法修改默认值。
-
ic-submit-before @定义了ajax提交前的回调函数。所有表单字段封装成的对象会做为参数传入。该函数返回false,会中止ajax提交。可选。
-
ic-submit-on-done @定义了ajax提交成功回调函数。
-
ic-submit-on-fail @定义了ajax提交失败回调函数。
-
ic-submit-on-always @定义了ajax提交完成后的回调函数,无论ajax成功或失败。
-
ic-role-loading @可选,定义了该dom元素为loading提示,ajax请求时会显示。
有[ic-form-submit]属性的元素会有一个icVerify方法,用于表单字段校验。 校验通过返回1,失败返回0;
var isOk = $('[ic-form-submit=login]').icVerify();
//自定义验证规则
brick.set('ic-form.rule',{
code:/\d{6}/,
f: function(input){
if(!input) return '表单字段f不能为空。';
if(input === 'js') return true;
return '提示:必须输入js';
}
});
//通过覆盖以下两个jQuery扩展实现自定义loading显示
$.fn.icSetLoading = function(){
//实现代码
}
$.fn.icClearLoading = function(){
//实现代码
}
//表单验证失败会在ic-form元素上面触发ic-form.error事件,验证失败的ic-form-field元素会触发ic-form-field.error事件,验证通过会触发ic-form-field.ok事件,可以自定义事件处理函数
$('[ic-form=login]').on('ic-form.error', function(e, msg){
console.info(this, e, msg);
});
$('[ic-form-field=password]').on('ic-form-field.error', function(e, msg){
console.info(this, e, msg);
});
有ic-form-field-err-tip属性的dom元素会在相关的表单字段验证失败后添加error类。