#author("2022-09-04T12:25:42+08:00","default:Admin","Admin")
#author("2022-09-04T12:25:55+08:00","default:Admin","Admin")
[[Vue]]

&color(red){※前提条件:本情報はVue 2.0を基づいて説明してる};
#contents


* el-form 的 model 属性 [#fbb70e28]

el-input 绑定的元素必须是 el-form 的 model 的直接属性,否则会导致校验失败。

如下面的页面文件所示,el-form 的 model 是 loginForm 那么 el-form-item 中所有需要校验的表单的 的 model 也必须是loginForm.xxxx 即 loginForm 对象的直接属性。

#codeprettify{{
<el-form ref="loginForm" :model="loginForm" label-position="top" label-width="80px" :rules="rules">
  <el-form-item prop="username" label="用户名" :rules="$filter_rules({ required: true,type:'username',min:2,max:15 })">
    <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="用户名">
      <svg-icon slot="prefix" icon-class="user" class="el-input__icon" />
    </el-input>
  </el-form-item>
</el-form>
}}


validate的“index.js”文件里面

#codeprettify{{
        case 'username':
          rules.push({ pattern: /^[\w\d]{3,15}$/, message: '用户名的格式不正确。', trigger: 'blur' });
}}


&ref(vue_formva1.png);

* 内嵌 el-form 的校验 [#tdf57ce7]

内嵌了好多层的 form 校验的注意事项
- ref的命名要避免重复
- el-form 的 :model 要绑定
- el-form-item 验证的 prop 不要写成 scope.row.reason

#codeprettify{{
<el-table-column label="删除" width="60" align="center" v-if="canEdit">
  <template slot-scope="scope">
    <el-popover :ref="scope.row.id" placement="top" :key="scope.row.id">
      <el-form :ref="'delForm' + scope.row.id" :model="scope.row" size="small" :key="'delForm' + scope.row.id">
        <p>确定删除吗?</p>
        <el-form-item label="原因" prop="reason" :rules="$filter_rules({ required: true })">
          <el-input type="textarea" placeholder="请填写删除理由。" v-model="scope.row.reason"> </el-input>
        </el-form-item>
      </el-form>
      <div style="text-align: right;">
        <el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
        <el-button size="mini" type="primary" @click="delInfo(scope.row)">确定</el-button>
      </div>
      <i class="el-icon-delete" slot="reference" style="cursor: pointer"></i>
    </el-popover>
  </template>
</el-table-column>
}}

#hr();
コメント:
#comment_kcaptcha

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS