Vue.js 表单提交在隐藏和显示 bootstrap 面板后不起作用

Vue.js form submit doesn't work after hide and show a bootstrap panel

我有 3 个 bootstrap panels 显示,具体取决于我们选择的 select 的值:

<div class="panel panel-default">
 <Select/>
</div>
<div class="panel panel-default" v-if="fileMode == 0"></div>
<div class="panel panel-default" v-else-if="fileMode == 1"></div>
<div class="panel panel-default" v-else>
 <div class="form" id="uploadCsvForm"/>
</div>

js:

  mounted() {
    var self = this;
    this.$nextTick(() => {
      $("#uploadCsvForm").submit(function(e) {
         e.preventDefault();
         self.uploadCsvAndGetData();
         return true;
      });
    });
  },

所以在隐藏和显示具有表单的面板之后,$("#uploadCsvForm").submit(function(e) 不再起作用... 你知道为什么吗?

谢谢

这是因为 div 被删除,事件处理程序绑定丢失。尽量不要将 Vue 与 jQuery 混用。像这样会更好:

<div class="panel panel-default">
 <Select/>
</div>
<div class="panel panel-default" v-if="fileMode == 0"></div>
<div class="panel panel-default" v-else-if="fileMode == 1"></div>
<div class="panel panel-default" v-else>
 <div class="form" @submit="uploadCsvAndGetData"/>
</div>