国家税务局电子发票开票平台界面,通过JS获取到开票单位名称input元素后,给Input.value元素赋值,界面正常显示,但当鼠标在名称的文本框中点击时,文本框中的内容会消失;网上查到需要执行input.dispatchEvent(new Event('input')),但执行后,文本框中的内容也会消失;会是什么问题呢,如何才能往文本框input中赋值并且鼠标单击不会消失呢
初步判断应该不是使用了Vue或是react框架导致的,因为上图中,同一个form中的第三个和第四个文本框,就可以直接给value赋值,然后执行input.dispatchEvent(new Event('input'))后,文本中的值在单击时就不会消失
应该由别的地方把值给清空了,比如focus事件,input事件或其他事件...
如何能找出来是什么事件给清空的呢
inputSaleName.dispatchEvent(new Event('focus'))
inputSaleName.value='测试公司'
inputSaleName.dispatchEvent(new Event('input'))
inputSaleName.dispatchEvent(new Event('blur'))
先执行获取焦点,然后赋值,然后执行input事件,最后再执行一下失去焦点事件,就可以正常赋值成功了