error信息显示状态下按钮按下时error不消失问题
2023-03-20 14:43:08 时间
问题现象:
当画面增加一个按钮,在输入框表示error状态下,按下按钮,error信息还是没有消失,即使在按下事件中已经设置了setCustomValidity()方法,还是没有起效。
【set value】按下↓↓↓
<template>
<lightning-card title="input demo">
<lightning-input type="text" value={inputValue} onchange={handleChangeEvent} required label="test input">
</lightning-input><br/>
<lightning-button label="set value" onclick={handleSetValueClick}></lightning-button>
</lightning-card>
</template>
import { LightningElement, track } from 'lwc';
export default class ExampleLwcInputRequired extends LightningElement {
@track inputValue = '';
handleChangeEvent(event) {
this.inputValue = event.detail.value;
if(this.template.querySelector('lightning-input').checkValidity()) {
this.template.querySelector('lightning-input').setCustomValidity('');
this.template.querySelector('lightning-input').reportValidity();
}
}
handleSetValueClick(event) {
this.inputValue = 'test';
if(this.template.querySelector('lightning-input').checkValidity()) {
this.template.querySelector('lightning-input').setCustomValidity('');
this.template.querySelector('lightning-input').reportValidity();
}
}
}
解决方法:添加setTimeout方法
import { LightningElement, track } from 'lwc';
export default class ExampleLwcInputRequired extends LightningElement {
@track inputValue = '';
handleChangeEvent(event) {
this.inputValue = event.detail.value;
if(this.template.querySelector('lightning-input').checkValidity()) {
this.template.querySelector('lightning-input').setCustomValidity('');
this.template.querySelector('lightning-input').reportValidity();
}
}
handleSetValueClick(event) {
this.inputValue = 'test';
window.clearTimeout(this.delayTimeout);
this.delayTimeout = setTimeout(() => {
if(this.template.querySelector('lightning-input').checkValidity()) {
this.template.querySelector('lightning-input').setCustomValidity('');
this.template.querySelector('lightning-input').reportValidity();
}
}, 1000);
}
}
【set value】按下↓↓↓
相关文章
- PHP实现基于文本的莫斯电码生成器
- PHP内核探索之PHP中的哈希表
- Apache Skywalking 使用 OpenSearch 取代 Elasticsearch
- GitHub 现在支持 FIDO2 安全密钥
- 那些优秀程序员身上的共同特质
- PHP程序员的简单运维
- 作为PHP开发者请务必了解Composer
- 一篇学会建造者模式
- Java 8的Nashorn脚本引擎教程
- 如何使用CyberPanel轻松管理Docker映像和容器?
- C语言预处理命令总结大全
- 一日一技:你一定经常写出来的冗余代码
- 让我们再为C#异步编程Async正名
- 与开发者反馈代码有错误时,请想想这7点!
- Bug虐我千百遍,我待Bug如初恋
- PHP与UTF-8的最佳实践
- 抱怨Swagger不好用?好吧我换一个好用的
- Dubbo原理剖析 之 @DubboReference.version设置为*
- C语言核心之数组和指针详解
- 一日一技:如何移除所有不可见字符?