Просмотр исходного кода

输入框添加免检字段,免检不校验是否有错误信息

xiaohaizhao 2 лет назад
Родитель
Сommit
7f4e040ebf
2 измененных файлов с 15 добавлено и 2 удалено
  1. 14 1
      components/Yl_field/index.js
  2. 1 1
      components/Yl_field/index.wxml

+ 14 - 1
components/Yl_field/index.js

@@ -78,6 +78,18 @@ Component({
             };
             this.data.temporary = null;
         },
+        onBlur(e) {
+            let item = e.target.dataset.item,
+                index = this.data.form.findIndex(v => v.valueName === item.valueName);
+            if (item.interrupt) this.triggerEvent("interrupt", {
+                data: this.data.form[index],
+                form: this.data.form,
+                temporary: {
+                    item,
+                    index
+                }
+            });
+        },
         /* 改变值 */
         inputChange(e) {
             let item = e.target.dataset.item,
@@ -246,7 +258,8 @@ Component({
                 isPass = false;
             this.data.form.forEach((v, i) => {
                 obj[v.valueName] = v.value;
-                if (v.errMsg != '') {
+                // permit 无视errMsg 允许通过
+                if (!v.permit && v.errMsg != '') {
                     this.setData({
                         [`form[${i}].error`]: true
                     });

+ 1 - 1
components/Yl_field/index.wxml

@@ -178,7 +178,7 @@
             </view>
         </view>
         <!-- 输入框 -->
-        <van-field wx:else label="{{item.label}}" required="{{item.required}}" value="{{ item.value }}" placeholder="{{item.placeholder||'请填写'}}" label-class='label-class' type="{{item.type}}" error="{{item.error}}" error-message='{{item.errMsg}}' disabled="{{item.disabled}}" autosize border="{{ false }}" bind:input="inputChange" data-item="{{item}}">
+        <van-field wx:else label="{{item.label}}" required="{{item.required}}" value="{{ item.value }}" placeholder="{{item.placeholder||'请填写'}}" label-class='label-class' type="{{item.type}}" error="{{item.error}}" error-message='{{item.errMsg}}' disabled="{{item.disabled}}" autosize border="{{ false }}" bind:input="inputChange" bind:blur='onBlur' data-item="{{item}}">
             <view slot='button' style="display: flex;">
                 <view wx:if="{{item.slot}}" style="margin-right: 8rpx;">
                     <slot name="{{item.slot}}" />