b-tab 标题内表单输入的事件监听器

Posted

技术标签:

【中文标题】b-tab 标题内表单输入的事件监听器【英文标题】:Event listeners of form input inside b-tab title 【发布时间】:2021-06-04 02:34:32 【问题描述】:

我目前正在尝试在 bootstrap-vue 中实现动态 b-tab 组件的可编辑标题。

因此我使用下面的代码sn-p。

 <b-tab v-for="attribute in test.attributes" :key="test.attributes.indexOf(attribute)">
   <template #title>
    <b-input-group>
      <b-form-input
        id="input-id"
        v-model="attribute.id"
        size="sm"
        :plaintext="isEditable(attribute)"
      />
      <b-input-group-append>
        <b-button size="sm" variant="danger" class="float-right" @click="removeAttribute(attribute)">
          x
        </b-button>
      </b-input-group-append>
    </b-input-group>
  </template>
 </b-tab>

这对于编辑选项卡标题效果很好,但是表单输入的事件侦听器在选择文本和更改光标位置时遇到了一些问题。对我来说,@click 被选项卡标题的 b-link 消耗是有道理的,但我找不到任何阻止双击选择文本或拖动选择文本的侦听器。

是否有可能在标签标题内实现正常的 b-form-input 行为?

【问题讨论】:

【参考方案1】:

您可以使用 sn-p 在 b-tab 中使用 b-form-input 来更改标题。我使用:disabled 来防止点击非活动标签。

new Vue(
  el: '#app',
  data() 
    return 
      tab_index: 0,
      items: [
          id: 1,
          input_model_var: ""
        ,
        
          id: 2,
          input_model_var: ""
        
      ]
    
  
)
<link type="text/css" rel="stylesheet" href="https://unpkg.com/bootstrap@4.5.3/dist/css/bootstrap.min.css" />

<script src="https://unpkg.com/vue@2.6.12/dist/vue.min.js"></script>
<script src="https://unpkg.com/bootstrap-vue@2.21.2/dist/bootstrap-vue.min.js"></script>


<div id="app">
  Tab index: tab_index
  <b-tabs v-model="tab_index">
    <b-tab v-for="(item, index) in items" :key="item.id">
      <template #title>
    <b-input-group>
      <b-form-input
        id="input-id"
        v-model="item.input_model_var"
        size="sm"
        :disabled="index != tab_index"
      />
  </template> Item is:  item.input_model_var 
    </b-tab>
  </b-tabs>

</div>

【讨论】:

以上是关于b-tab 标题内表单输入的事件监听器的主要内容,如果未能解决你的问题,请参考以下文章

如何监听Stripe cardElement 的输入事件,判断卡片是不是无效并禁用按钮?

jQuery 和 Django 表单验证重新加载和提交事件监听器

Python gtk3 窗口监听输入事件

HTML5xuexi

深入理解Spring的容器内事件发布监听机制

深入理解Spring的容器内事件发布监听机制