实际开发过程中遇到关于使用$prompt的一些注意事项,需求是实现的弹框需要像element-ui示例具有邮箱校验功能,下面是最初的代码:
this.$prompt(`请设置 <span class="text-success">${this.name}</span> 的邮箱:`, '', {
inputValue: this.email,
dangerouslyUseHTMLString: true,
closeOnClickModal: false,
inputPattern: /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
inputErrorMessage: '邮箱格式不正确'
}).then(({ value }) => {
// 具体业务逻辑
}).catch(() => {
})
但是会出现首次打开就会出现errorMessage提示,
看了官方文档示例,想着是不是inputValue: this.email的问题,把该行代码注释掉,发现就不存在之前的问题了;最后发现是关于this.email初始值为空字符串而不是null导致首次打开$prompt输入框触发校验部分;最终代码修改成以下形式解决问题:
this.$prompt(`请设置 <span class="text-success">${this.name}</span> 的邮箱:`, '', {
inputValue: this.email ? this.email : null,
dangerouslyUseHTMLString: true,
closeOnClickModal: false,
inputPattern: /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
inputErrorMessage: '邮箱格式不正确'
}).then(({ value }) => {
// 具体业务逻辑
}).catch(() => {
})
记录开发过程中遇到的一些问题,希望可以帮到遇到同样问题的小伙伴。