zoukankan      html  css  js  c++  java
  • iview 动态实现增减输入框

    前端模版

    要点说明(仅是自己在调试中总结的个人理解,非官方,认知有限)

    • v-model是用来绑定数据的,和数据结构中的字段名保持一致,否则无法取得数据
    • prop和和v-model的字段名相同,由于这里是动态生成input标签,所以prop属性也应该是动态的,因为rules是根据prop来校验的,所以rules在formItem域中单独设置
    • 如果设置了非空的规则,输入数据后检查不通过,则应该是prop和v-model设置的不同原因导致
    • 为了使两个输入框同行显示,这里每列设置单独的formItem(尝试了N中写法实现的)
    <Form ref="applyInfo" :model="applyInfo" :rules="rules">
            <Card>
              <p slot="title">
                <Icon type="ios-chatboxes"></Icon>
                生产者白名单新增
              </p>
              <div id="produce">
                <FormItem>
                  <Row>
                    <Col span="12">
                        <Button type="primary" @click="addProduceData">添加</Button>
                    </Col>
                  </Row>
                </FormItem>
                 <Row v-for="(item, index) in applyInfo.produceData.items" v-if="item.status" :key="index">
                  <Col span="6" >
                    <FormItem label="topic" :prop="'produceData.items.'+index+'.value.topic'" :label-width=110  :rules="[{required:true,message:'topic不能为空',trigger:'blur'}]">
                        <Input v-model="item.value.topic"  placeholder="输入topic名称"/>
                    </FormItem>
                  </Col>
                  <Col span="6"  offset=1>
                    <FormItem label="白名单bns" :prop="'produceData.items.'+index+'.value.bns'" :label-width=110 :rules="[{required:true,message:'topic不能为空',trigger:'blur'}]">
                        <Input v-model="item.value.bns" placeholder="输入生产者bns白名单"/>
                    </FormItem>
                  </Col>
                  <Col span="6" offset="1">
                    <Button type="error" @click="deleteRow(index)">删除</Button>  
                  </Col>
                  </Row>
              </div>
            </Card>
            </form>

    js部分

    <script>
    export default {
        data() {
          return {
            index:1,
            applyInfo: {
                produceData:{
                 items:[
                  {
                    
                  }
                ]
              },
            },
    },    methods: { addProduceData(){
    this.index++; this.applyInfo.produceData.items.push({ value:{ topic:'', bns:'' }, index: this.index, status:1 })
    }, }

    效果

  • 相关阅读:
    6.html5分组元素
    STL基础--算法(修改数据的算法)
    STL基础--算法(不修改数据的算法)
    STL基础--仿函数(函数对象)
    STL基础--迭代器和算法
    STL基础--容器
    STL基础--基本介绍
    C++11--Tuple类<tuple>
    C++11--随机数引擎和随机数分布<random>
    C++11--时钟和计时器<chrono>
  • 原文地址:https://www.cnblogs.com/Bccd/p/13125831.html
Copyright © 2011-2022 走看看