zoukankan      html  css  js  c++  java
  • 使用contenteditable=true的div模拟textarea(vue2.0中使用,带placeholder且高度自动撑开)

    子组件:

    <template>
      <div class="item-address">
        <span v-show="!hasAddress" class="address-placeholder">请输入详细地址</span>
        <div contenteditable="true" v-html="innerText" @input="changeText" @focus="isLocked = true" @blur="isLocked = false" class="address-edit"></div>
      </div>
    </template>
    <script>
      export default {
        props: {
          value: {
            type: String,
            default: ''
          }
        },
        data() {
          return {
            innerText: '',
            hasAddress: '',
            isLocked: false
          }
        },
        methods: {
          changeText(){
            this.hasAddress = this.$el.innerHTML
            this.$emit('edit-handler', this.$el.innerHTML)
          }
        },
        watch: {
          value(val) {
            if (!this.isLocked || !this.innerText) {
              this.innerText = val
            }
          }
        }
      }
    </script>
    
    <style lang="scss">
      .item-address {
        width: px2rem(420px);
        @include lh-dpr(48px);
        position: relative;
        .address-placeholder {
          color: #a2a2a2;
          position: absolute;
          left: 0;
          top: 0;
        }
        .address-edit {
          position: relative;
          z-index: 1;
          @include lh-dpr(48px);
          word-break: break-all;
        }
      }
    </style>

    父组件:

    <template>
      <div>
        <editable-div @edit-handler="onEditHandler" />
      </div>
    </template>
    
    <script>
    import EditableDiv from '@/components/EditableDiv'
    export default {
      data() {
        return {
          addressDetail: ''
        }
      },
      components: {
        EditableDiv
      },
      methods: {// 实时获取详细地址
        onEditHandler(val) {
          this.addressDetail = val
        }
      }
    }
    </script>

    PS: addressDetail即为输入框的内容
  • 相关阅读:
    阿里巴巴的字体图标库不错
    SQL语句一次INSERT多条记录的方法
    Oracle中改变表的Owner和tablespace
    QQ在线状态的使用
    gtest
    Git
    gRPC安装的小问题
    蓝桥杯试题 基础练习 查找整数
    Product Backlog
    本周工作量统计
  • 原文地址:https://www.cnblogs.com/uno1990/p/9682155.html
Copyright © 2011-2022 走看看