Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

341
Visualizações
opción deshabilitada agregada al nodo que no funciona con vuetify

Hola, estoy usando vuetify y creé esa directiva para poder deshabilitar todos los elementos secundarios del padre que tiene el atributo "disableAll". Funciona perfectamente con algunos elementos (como el texto de entrada normal), pero cuando es un tipo de casilla de verificación ( como un interruptor) no se deshabilitan ... ¿podría ser vuetify la razón de eso? Imprimí la constante de "Nodos" y dentro de eso está la casilla de verificación. Entonces está encontrando los elementos y aplica la propiedad deshabilitada pero simplemente no funciona

esta es la directiva

 directives: { disableAll: { componentUpdated: (el) => { const tags = ['input', 'button', 'textarea', 'select']; tags.forEach(tagName => { const nodes = el.getElementsByTagName(tagName); for (let i = 0; i < nodes.length; i++) { nodes[i].disabled = true; nodes[i].tabIndex = -1; } }); } },

este es el html de un Switch

 <div class="col"> <div class="v-input my-0 v-input--is-label-active v-input--is-dirty theme--light v-input--selection-controls v-input--switch primary--text"> <div class="v-input__control"> <div class="v-input__slot"> <div class="v-input--selection-controls__input"> <input aria-checked="true" id="input-414" role="switch" type="checkbox" aria-disabled="false" value="true" disabled tabindex="-1"> <div class="v-input--selection-controls__ripple primary--text"></div> <div class="v-input--switch__track theme--light primary--text"></div> <div class="v-input--switch__thumb theme--light primary--text"> <!----> </div> </div> <label for="input-414" class="v-label theme--light" style="left: 0px; right: auto; position: relative;">Habilitar cartas</label> </div> <div class="v-messages theme--light primary--text"> <div class="v-messages__wrapper"></div> </div> </div> </div> </div>

y como se puede ver en esta linea

 <input aria-checked="true" id="input-414" role="switch" type="checkbox" aria-disabled="false" value="true" disabled tabindex="-1">

La propiedad deshabilitada se está aplicando, simplemente no funciona

Sé que vuetify tiene su propia propiedad deshabilitada que puede agregar a cada nodo, o esta propiedad deshabilitada que se usa en los formularios. Pero estaba tratando de personalizar esto usando directivas porque hay algunos elementos que no necesito tener deshabilitados.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Si solo desea activar el efecto de interfaz de usuario para v-switch , no cambie el estado del componente, simplemente puede agregar className= v-input--is-disabled en su Dom de v-switch como se muestra a continuación:

 Vue.directive('disable-all', { inserted: function (el) { el.querySelectorAll('div.v-input.v-input--switch').forEach(item => { item && item.classList.add('v-input--is-disabled') }) } }) new Vue({ el: '#app', vuetify: new Vuetify(), data () { return { switches: [true, false], } }, })
 <script src="https://cdn.jsdelivr.net/npm/babel-polyfill/dist/polyfill.min.js"> </script> <script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/vuetify@2.6.1/dist/vuetify.min.js"></script> <link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet" type="text/css"> <link href="https://cdn.jsdelivr.net/npm/@mdi/font@6.x/css/materialdesignicons.min.css" rel="stylesheet" type="text/css"> <link href="https://fonts.googleapis.com/css?family=Material+Icons" rel="stylesheet" type="text/css"> <link href="https://cdn.jsdelivr.net/npm/vuetify@2.6.1/dist/vuetify.min.css" rel="stylesheet" type="text/css"> <div id="app"> <v-app id="inspire"> <v-container class="px-0" fluid v-disable-all > <v-switch v-model="switches[0]" :label="`Switch 1: ${switches[0].toString()}`" ></v-switch> <v-switch v-model="switches[1]" :label="`Switch 1: ${switches[1].toString()}`" ></v-switch> </v-container> </v-app> </div>

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda