Simulating click event on input - JavaScript

后端 未结 3 730
温柔的废话
温柔的废话 2021-01-21 01:42

I\'m trying to simulate a click on an input tag, through the click on an anchor tag, this way I can hide the input and wrap an image inside the anchor tag.

相关标签:
3条回答
  • 2021-01-21 02:08

    Use:

    document.getElementById('user_avatar').click();
    

    Tested and it works.

    0 讨论(0)
  • 2021-01-21 02:19

    You don't need JavaScript at all to solve this problem.

    Just make the input invisible by setting its opacity:0 and position both elements absolutely within a common parent element, then make sure the input is on the top layer and is the same size as the image behind it.

    #user_avatar { opacity:0; position:absolute; z-index:9; width:320px; height:240px; }
    img { position:absolute; z-index:-1; }
    <div>
      <input type="file" name="file_field" id="user_avatar">
      <img src="https://fthmb.tqn.com/65lNzIRNfZY4xY02D17b1RcGvso=/960x0/filters:no_upscale()/kitten-looking-at-camera-521981437-57d840213df78c583374be3b.jpg" width="320" height="240">
    </div>

    0 讨论(0)
  • 2021-01-21 02:30

    document.getElementById('user_avatar').click() will work

    let fake = document.querySelector('.fake');
    fake.addEventListener('click', function(e) {
      e.preventDefault();
      document.getElementById('user_avatar').click()
    })
    #user_avatar {
      display: none;
    }
    <input type="file" name="file_field" id="user_avatar">
    <a href="#" class="fake">
      <img src="https://fthmb.tqn.com/65lNzIRNfZY4xY02D17b1RcGvso=/960x0/filters:no_upscale()/kitten-looking-at-camera-521981437-57d840213df78c583374be3b.jpg" width="320" height="240">
    </a>

    0 讨论(0)
提交回复
热议问题