指令判断数据更改,文本变色

默认数据是这样,如果更改了其中一个,文本框变成红色

html 复制代码
<el-form-item label="Activity name">
        <el-input
          v-model="form.name"
          v-highlight="datas['name']"
          @input="changeValue('name')"
        />
      </el-form-item>
      <el-form-item label="Activity zone">
        <el-select
          v-model="form.region"
          v-highlight="datas['region']"
          placeholder="please select your zone"
          @change="changeValue('region')"
        >
          <el-option label="Zone one" value="shanghai" />
          <el-option label="Zone two" value="beijing" />
        </el-select>
      </el-form-item>

v-highlight="datas['name']"

@input="changeValue('name')"

需要改变的item加入这2句话

javascript 复制代码
import Vue from "vue";
Vue.directive("highlight", {
  update: function (el, binding) {
    const classname = el.getAttribute("class");
    const elRef =
      classname == "el-input" ? el.children[0] : el.children[0].children[0];
    if (binding.value !== binding.oldValue) {
      elRef.style.color = binding.value ? "red" : "";
    }
  },
});

el.children[0] :和el.children[0].children[0]主要目的是找到input的元素,

数据:

form: {

name: "666",

region: "shanghai",

},

datas: { name: false, region: false },

changeValue(key) {

this.datas[key] = true;

},

讲当前更改的数据变成true即可

相关推荐
进击的尘埃几秒前
深入探究 React Hooks 你一直在写却从未写对的最佳实践
javascript
coder_Eight5 分钟前
吃透JS深拷贝:从原理到实战(含Symbol全场景+性能对比)
javascript
程序员阿峰22 分钟前
【JavaScript面试题-this 绑定】请说明 `this` 在不同场景下的指向(默认、隐式、显式、new、箭头函数)。
前端·javascript·面试
玉米Yvmi1 小时前
给 JS穿上铠甲:TypeScript 基础核心概念详解(类型/接口/泛型)
前端·javascript·typescript
米丘1 小时前
vue-router v5.x createRouter 是创建路由实例?
前端·vue.js
cmd1 小时前
《Vue3 watch详情:deep/immediate/flush/once 全用法 + 踩坑总结》
vue.js
学以智用2 小时前
# Vue3 AJAX 请求数据
前端·vue.js
用户90319087148822 小时前
Vue 组件设计优化:别把控制显隐的 v-if 藏在子组件里
vue.js
牛马1112 小时前
Flutter CustomPaint
开发语言·前端·javascript