【问题标题】:Vuetify password is overlaping v-text-field labelVuetify 密码与 v-text-field 标签重叠
【发布时间】:2019-12-01 16:24:04
【问题描述】:

我正在使用 Vuetify 和 Firebase 制作日志记录组件。我希望隐藏密码,但通过将类型“密码”添加到 v-text-field,它会添加 4 个点与密码字段的标签重叠,并且单词“管理员”与电子邮件字段重叠:

当我单击任何字段时,我可以在 $data pre 中看到“admin”已分配给密码和电子邮件。我尝试将“占位符”和“值”属性设置为空字符串,但不起作用。在 vuetify 文档中,我看不到任何将“管理员”分配给 v-text-field 的道具。 我该如何解决这个问题? 这是我的组件代码:

<template>
  <v-form>
    <v-container>
      <v-text-field 
        label="E-mail"
        v-model="email"
        >
      </v-text-field>
      <v-text-field
        label="Pasword"
        v-model="password"
        type="password"
        placeholder=""
        >
      </v-text-field>
      <v-btn 
        color="blue" 
        @click="login()"
      >Submit
      </v-btn>
    </v-container>
    <pre>
    {{ $data}}
  </pre>
  </v-form>
</template>

<script>
  import firebase from 'firebase'
  export default {
    data() {
      return {
        email: '',
        password: ''
      }
    },
    methods: {
      login(){
        firebase.auth().signInWithEmailAndPassword(this.email, this.password)
          .then(user => console.log('User conected'), error => console.log(error))
      }
    }
  }
</script>

【问题讨论】:

    标签: javascript firebase vue.js vuetify.js


    【解决方案1】:

    我认为这与您的代码无关,您使用的是 Chrome,对吗?谷歌做了一些很难控制的奇怪事情,这是因为你有一个保存的用户名和密码,并且由于 vuetify 使用标签作为占位符,谷歌保存的表单样式与你的“崩溃”,这发生在我身上已保存表单的下拉菜单的颜色和现在(仅在 1 台计算机中)用户名和密码的字体大小在 v-text-field 内较小,直到您单击它

    【讨论】:

      【解决方案2】:

      我在这里找到了错误讨论和解决方法(来自@185driver): https://github.com/vuetifyjs/vuetify/issues/3679 建议的代码对我来说并不一致

      我仍在寻找更好的解决方案,但在此期间我发现将标签设置为活动至少可以阻止重叠。在还没有数据的表单上,标签在它应该被接合之前被接合,但表单看起来比重叠文本更好。

      login_vue.js

      mounted() {
          $("label\[for=\'username\'\]").addClass('v-label--active');
          $("label\[for=\'password\'\]").addClass('v-label--active');
          ...
      }
      

      login.html.erb

      <v-row>
        <v-col cols="5"></v-col>
        <v-col cols="2">
          <v-text-field id="username" v-model="email" name="email" label="Username" ></v-text-field>
        </v-col>
      </v-row>
          
      <v-row>
        <v-col cols="5"></v-col>
        <v-col cols="2">
          <v-text-field id="password" v-model="password" :type="'password'" name="password" label="Password" ></v-text-field>
        </v-col>
      </v-row>
      

      注意:输入必须具有 id 才能将标签“for”生成为 input-1 以外的其他内容

      【讨论】:

        猜你喜欢
        • 2018-07-14
        • 2021-02-17
        • 2021-07-08
        • 1970-01-01
        • 2021-08-19
        • 1970-01-01
        • 2020-07-27
        • 2018-12-26
        • 2021-05-13
        相关资源
        最近更新 更多