vue进入页面时触发input的点击事件?

input是上传图片的,怎么在页面打开时触发点击事件进行图片选择?
想让用户在进入页面时就可以上传图片了,而不是需要点击一次后再上传

<input id="license" type="file" accept="image/*" ref="cameraPhotoInput_license" prop="license">
阅读 12.3k
3 个回答

你这个也没绑定click事件,如果要触发点击事件的话,可以this.$refs.cameraPhotoInput_license.click()试试,最好在$nextTick中调用

新手上路,请多包涵

给个autofocus让输入框自动聚焦,然后@focus来触发自定义方法试试,我记得autofocus有的平台会有问题,楼主可能要用到自定义指令这一块的东西,先试试能不能实现~~

意味着调起图片选择器或者相机是自动触发的吗?

可以在进入页面的页面组件的生命周期中,使用js中 HTMLElement 的 dispatchEvent,例如类似下面的代码。

<script>
  mounted() {
    // 核心代码
    const trigger = () => {
      const $el = this.$refs.input.$el;
    
      $el.dispatchEvent(new Event('click'));
    }
    if (!this.$refs.input) {
      this.$nextTick(trigger.bind(this))
    } else {
      trigger();
    }
  }
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题