vue.jsvuejs3vuetify.jsvuetifyjs3

Show a tooltip when the placehoder is overwritten


I want to dynamically display a label for a text box based on whether the v-model is empty or not. When there is no user input, the placeholder can handle this, but once text is entered (which is the main point of the question), I want to show a tooltip instead.

I’m considering controlling the tooltip's activation behavior using props like activator and v-if, but I haven’t had success so far.

<v-text-field v-model="model_text" 
    placeholder="My Label" hide-details>
  <v-tooltip v-if="model_text" activator="parent" location="start">
    My Label
  </v-tooltip>
</v-text-field>

Solution

  • I managed to resolve the issue by setting :model-value=true, which is crucial for making the tooltip show or hide immediately as changes occur.

    Additionally, I chose the parent text field as the target, while using the larger portion of the window (in my case, #my-root was a table) as the activator.

    <v-text-field v-model="model_text" 
        placeholder="My Label" hide-details>
        <v-tooltip text="My Label" activator="#my-root" target="parent" 
        :model-value=true v-if="model_text" location="start">
        </v-tooltip>
    </v-text-field>
    

    All this was necessary to make the tooltip work, as it wasn’t functioning properly before.