• 记录el-input使用原生JS事件修改值data后v-model值不同步问题


    记录问题

    1. <el-input v-model="a_item.C_ISBN" size="medium" type="textarea" placeholder="请填写商品ID,以英文分号';'分割"
    2. @blur="btKeyUp">el-input>
    1. //限制输入特殊字符
    2. btKeyUp(e) {
    3. e.target.value = e.target.value.replace(/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/g,";");
    4. },

    这时候问题出现了,v-html的值并没有改变

    原因:js修改时没有触发input事件$emit(‘input’,value)


     解决方法:

     e.target.dispatchEvent(new Event('input'))

     使用方式:

    1. btKeyUp(e) {
    2. e.target.value = e.target.value.replace(/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/g,";");
    3. e.target.dispatchEvent(new Event('input'))
    4. },

    扩展知识点

    1. //自定义事件
    2. const inputEvent=new Event('input')
    3. window.dipatchEvent(inputEvent) //手动触发
    4. window.addEventListener('input',funciton(){
    5. })
    6. //这种得需要用window对象监听
    7. dom.dipatchEvent(inputEvent) //手动触发 就这相当vue中$emit('input')
    8. dom.addEventListener('input',funciton(){
    9. }) //相当于$on('input')
    10. //和以上同理。可以搜索一下自定义事件学习一下就明白了

    《剧终》

  • 相关阅读:
    Unity C# NullUtils
    攻防世界题目练习——Web引导模式(一)
    uniapp 小程序实现图片宽度100%、高度自适应的效果
    SpringSecurity框架学习
    Shell-01Shell初相识
    【Yocto1】构建嵌入式Linux系统
    vue3中 inject provide的响应式使用
    简单Wordpress小工具开发
    Shell 从入门到精通(一)
    mysql -测试和优化
  • 原文地址:https://blog.csdn.net/QQ_Empire/article/details/126542107