avalon框架系列---指令(四)

这一节主要是表单方面的指令,

表单页面的开发一般需要两个特点:1.输入内容按规则验证 2.表单内容提交

 

1.ms-validate 表单内容提交

    该指令只能用于form元素上,用于为表单添加验证功能

    指令的值对应一个对象,由于对象比较大,建议写在vm中

    一般会这么写:

    achievements: {

      resetInFocus: true,

      onSuccess: function (reasons) {

         reasons.forEach(function (reason) {

            $('#' + reason.element.id + 'Tips').html("");

         })

     },

     onValidateAll: function (reasons) {

        if (reasons.length) {

          reasons.forEach(function (reason) {

            $('#' + reason.element.id + 'Tips').html(reason.getMessage()).css("color", "red");

            $('html,body').animate({scrollTop: $('#' + reason.element.id + 'Tips').parent().parent().prev().offset().top}, 200);

         })

      } else {

          正式的收集参数和提交给后台方法

     }

   }

  },

  以上校验对应对象时,可随意写以下的:

     onError: avalon.noop,//针对单个表单元素(使用了ms-duplex的input, select)

     onSuccess: avalon.noop,//针对单个表单元素

     onComplete: avalon.noop,//针对单个表单元素

     onReset: avalon.noop,//针对单个表单元素

     validateInBlur: true, // {Boolean} true,在blur事件中进行验证,触发onSuccess, onError, onComplete回调

     validateInKeyup: true, // {Boolean} true,在keyup事件中进行验证,触发onSuccess, onError, onComplete回调

     validateAllInSubmit: true, // {Boolean} true,在submit事件中执行onValidateAll回调

     resetInFocus: true, // {Boolean} true,在focus事件中执行onReset回调,

     deduplicateInValidateAll: false // {Boolean} false,在validateAll回调中对reason数组根据元素节点进行去重

 2.ms-rules 校验规则对象

    只能用于添加ms-duplex指令的表单元素

   avalon内置的校验规则有很多,可在官方文档上查看,我们这里说下自定义的校验规则

 

    avalon.validators.aaa = {

     message: '必须数字并大于0',

    get: function (value, field, next) {

     //想知道它们三个参数是什么,可以console.log(value, field,next)

      var ok = (value === '' || (Number(value) > 0))

     next(ok)

     return value

  }

 }

 

 <input

 ms-duplex="@aaa"

ms-rules="{aaa: true}"

>

还有一种是内置的校验规则,但是错误的提示不符合需求,可以使用自定义的提示

data-xxx-message="xxxxxxx"(主要用于required等其他规则)








 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端SkyRain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值