首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新模糊输入的Vue指令

更新模糊输入的Vue指令
EN

Stack Overflow用户
提问于 2019-10-28 12:03:45
回答 2查看 4.7K关注 0票数 3

我正在尝试实现一个指令,该指令将减少对blur事件的输入值:

代码语言:javascript
复制
import { DirectiveOptions } from "vue";

const Autotrim: DirectiveOptions = {
    inserted(el) {
        if(!(el instanceof HTMLInputElement) && !(el instanceof HTMLTextAreaElement)) {
            throw 'Cannot apply v-autotrim directive to a non-input element!';
        }

        el.addEventListener('blur', () => {
           if(el.value)
               el.value = el.value.trim();
        });
    }
};

输入被更新,但模型中的绑定值不是,在组件中的任何其他地方更改后,它会恢复到未修剪的状态。

确保模型也被更新的正确方法是什么?

编辑这里有一个要尝试的代码链接:https://codepen.io/impworks/pen/mddMPyx

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-28 12:06:40

您需要触发input事件以让Vue知道值已被更改。

一旦检测到输入值与当前值不同,就执行此操作(以避免无限递归)

代码语言:javascript
复制
if (el.value && el.value !== el.value.trim()) {
    el.value = el.value.trim();
    el.dispatchEvent(new Event('input'));
}
票数 3
EN

Stack Overflow用户

发布于 2019-10-28 12:55:03

参考如下:https://stackoverflow.com/a/49602559/1364747

  1. 尝试“输入”事件
  2. 尝试绑定方法,如果上面的节点不工作
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58590628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档