elementUI中input输入框输入内容时,输入框中未显示展示内容,但是可以获取输入框的值

在使用elementUI的input输入框时遇到显示异常,输入内容未在界面上展示,但能获取到输入值。通过调用this.$forceUpdate()方法可以强制更新界面,从而解决此问题。
部署运行你感兴趣的模型镜像

1.由标题情况描述可知,这必然是界面显示出了问题
在这里插入图片描述
2.通过this.$forceUpdate()进行界面刷新即可解决这个问题,解决方法如下:

	<el-col :span="8">
		<el-form-item label="经办部门" prop="deptName">
			<el-input v-model="inquiryBaseInfo.deptName" @input="change($event)" clearable disabled> </el-input>
		</el-form-item>
	</el-col>
	/**
	 * @description 强制进行界面刷新
	 * @param {any} val
	 * @returns {void}
	 */
	public async change(val: [number, number]): Promise<any> {
		this.$forceUpdate();
	}

您可能感兴趣的与本文相关的镜像

LobeChat

LobeChat

AI应用

LobeChat 是一个开源、高性能的聊天机器人框架。支持语音合成、多模态和可扩展插件系统。支持一键式免费部署私人ChatGPT/LLM 网络应用程序。

### ElementUI 输入框显示异常问题分析与解决方案 在使用 ElementUI 的 `el-input` 组件,如果遇到输入内容在界面展示但可以通过代码获取的情况,通常是由以下原因导致的: 1. **组件渲染问题**:可能是由于 Vue 的响应式机制能正确触发视图更新[^1]。 2. **样式冲突**:外部样式可能覆盖了 `el-input` 的默认样式,导致输入内容可见[^4]。 3. **插件或事件干扰**:某些第三方插件或自定义事件可能干扰了 `el-input` 的正常行为[^2]。 #### 解决方案 以下是几种可能的解决方案,具体需要根据实际情况选择适合的方法: #### 方法一:强制刷新视图 通过手动触发 Vue 的 `$forceUpdate()` 方法,可以强制刷新视图以确保输入框内容同步显示。例如: ```javascript this.$nextTick(() => { this.$forceUpdate(); }); ``` 这种方法适用于视图更新的情况[^1]。 #### 方法二:检查样式冲突 确认是否存在外部样式覆盖了 `el-input` 的默认样式。可以通过浏览器开发者工具检查输入框的 `color`、`opacity` 等属性是否被修改。如果发现样式冲突,可以通过添加更具体的样式规则来覆盖错误样式。例如: ```css .el-input__inner { color: #000 !important; /* 确保文字颜色可见 */ opacity: 1 !important; /* 确保透明度为1 */ } ``` #### 方法三:监听输入事件 如果输入框内容更新到视图中,可以尝试监听 `input` 或 `change` 事件,并手动更新绑定的。例如: ```html <el-input v-model="inputValue" @input="handleInput"></el-input> ``` ```javascript methods: { handleInput(value) { this.inputValue = value; this.$forceUpdate(); // 确保视图更新 } } ``` 这种方法可以解决因事件触发而导致的显示异常问题[^2]。 #### 方法四:验证表单绑定 如果输入框位于 `el-form-item` 中,确保 `prop` 属性正确绑定,并且表单规则阻止视图更新。例如: ```html <el-form :model="form" :rules="rules" ref="form"> <el-form-item prop="name"> <el-input v-model="form.name"></el-input> </el-form-item> </el-form> ``` 同,确保 `v-model` 的数据模型是响应式的,避免非响应式数据导致的问题。 #### 方法五:升级 ElementUI 版本 如果上述方法均无效,建议检查当前使用的 ElementUI 版本是否为最新版本。低版本可能存在一些已知问题,升级到最新版本后可能会自动修复此类问题[^4]。 --- ### 示例代码 以下是一个完整的示例,结合了上述方法: ```html <template> <div> <el-form :model="form" :rules="rules" ref="form"> <el-form-item prop="name"> <el-input v-model="form.name" @input="handleInput"></el-input> </el-form-item> </el-form> </div> </template> <script> export default { data() { return { form: { name: '' }, rules: { name: [{ required: true, message: '请输入内容', trigger: 'blur' }] } }; }, methods: { handleInput(value) { this.form.name = value; this.$forceUpdate(); // 强制刷新视图 } } }; </script> <style> .el-input__inner { color: #000 !important; opacity: 1 !important; } </style> ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值