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

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

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

相关推荐
木头没有瓜35 分钟前
vscode离线安装插件
ide·vue.js·vscode
浪裡遊2 小时前
Sass详解:功能特性、常用方法与最佳实践
开发语言·前端·javascript·css·vue.js·rust·sass
夏梦春蝉3 小时前
ES6从入门到精通:常用知识点
前端·javascript·es6
我想说一句3 小时前
当饼干遇上代码:一场HTTP与Cookie的奇幻漂流 🍪🌊
前端·javascript
markyankee1013 小时前
使用 Vue 脚手架创建项目的完整指南
vue.js
南屿im3 小时前
基于 Promise 封装 Ajax 请求:从 XMLHttpRequest 到现代化异步处理
前端·javascript
青松学前端3 小时前
vue-2.7源码解读之初始化流程和响应式实现
前端·vue.js·前端框架
杨进军3 小时前
前端线上问题的那些事儿
前端·javascript·前端框架
每天开心3 小时前
深入探索 React Hooks: useState 与 useEffect 的力量 🌟
前端·javascript·ai编程
流星稍逝3 小时前
Vue3 + Uniapp 图片压缩公共方法封装
前端·vue.js