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

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

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即可

相关推荐
踩着两条虫1 小时前
VTJ.PRO 新手入门:从环境搭建到 AI 生成首个 Vue3 应用
前端·javascript·数据库·vue.js·人工智能·低代码
他是龙5511 小时前
63:JS 加密断点调试与逆向实战
开发语言·javascript·状态模式
2601_949194261 小时前
TypeScript 与后端开发Node.js
javascript·typescript·node.js
前端那点事1 小时前
Vue3 defineModel 完全不破坏单向数据流!底层原理+实战解析
vue.js
hmh123451 小时前
录音与音频可视化
前端·javascript
阿丰资源2 小时前
Java项目基于SpringBoot+Vue前后端分离在线商城系统(附源码)
java·vue.js·spring boot
江-月*夜2 小时前
vue3 wordcloud2.js词云使用
开发语言·javascript·vue.js
吴声子夜歌2 小时前
Vue3——Vuex状态管理
前端·vue.js·vue·es6
qq_12084093712 小时前
Three.js 工程向:Frustum Culling 与场景分块优化实战
前端·javascript