'Trigger button click event of a Vue.js application programmatically in a Chrome extension
I am developing a Google Chrome extension. There's a third party website that is developed in Vue.js.
I need to trigger a click event of a button on a page. But when I do this using JavaScript, the page reloads, but when the user manually clicks the button then it processes the validations and does not reload if any validation fails.
I am using the following code to click the button (jQuery code):
$('[type="submit"]').eq(1).trigger('click');
Note: the above code correctly initiates the click event of the related control, but the page reloads instead of waiting for the validation result. Also if I update the control's value using JavaScript then that does not get reflected on post-back.
Solution 1:[1]
Add a reference to your button, and then use that reference to trigger the button event click. Look at the following example:
Vue.config.devtools = false;
Vue.config.productionTip = false;
new Vue({
  el: '#app',
  methods: {
    logTest() {
      console.log("test test")
    }
  },
  mounted() {
    this.$refs.test.click();
  }
})
<link type="text/css" rel="stylesheet" href="//unpkg.com/bootstrap/dist/css/bootstrap.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>
<div id="app" class="container">
  <button ref="test" @click="logTest">test</button>
</div>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | Peter Mortensen | 
