Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

139
Views
Vue.js Cómo reflejar el campo de entrada con el modelo v y la propiedad calculada y una casilla de verificación

Estoy tratando de descubrir cómo reflejar correctamente dos campos de entrada y cambiarlos dinámicamente en función del valor de una casilla de verificación. Esto es lo mejor que puedo pensar en usar la propiedad calculada con funciones de obtención y configuración. El problema es cuando el usuario escribe (1) "ABC" en los detalles de envío, (2) desmarca (copy_chekcbox=false), (3) escribe "123" en los detalles de facturación y (4) vuelve a marcar (copy_chekcbox=true) ( 5) los detalles de facturación no vuelven a los detalles de envío, que es lo que necesito. Imagen con pasos

Además, ¿hay alguna forma más corta y óptima de reflejar dos campos y cambiar sus valores según el valor de la casilla de verificación?

Gracias de antemano.

 <!DOCTYPE html> <html> <head> <title>My first Vue app</title> <script src="https://unpkg.com/vue"></script> </head> <body> <div id="app"> <p>Shipping details</p> <input v-model="shipping" type="text" /> <p>Same as shipping: <input type="checkbox" v-model="copy_chekcbox" /></p> <p>Billing details</p> <input v-model="billing" type="text" :disabled="copy_chekcbox" /> </div> <script> var app = new Vue({ el: '#app', data: { shipping_data: '', billing_data: '', copy_chekcbox: true, }, computed: { shipping: { get: function() { return this.shipping_data }, set: function(newValue) { if (!this.copy_chekcbox) { this.shipping_data = newValue } else { this.billing_data = newValue this.shipping_data = newValue } }, }, billing: { get: function() { return this.billing_data }, set: function(newValue) { if (!this.copy_chekcbox) { this.billing_data = newValue } else { this.billing_data = this.shipping_data } }, }, } }) </script> </body> </html>

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

En mi opinión, creo que la forma más fácil es usar dos entradas con v-if:

 <p>Shipping details</p> <input v-model="shipping" type="text"> <p>Same as shipping: <input type="checkbox" v-model="copy_chekcbox"></p> <p>Billing details</p> <template v-if="copy_chekcbox"> <input v-model="shipping" type="text"> <template> <template v-else> <input v-model="billing" type="text"> </template>

La principal ventaja de este método es que su código JavaScript sigue siendo simple.

about 4 years ago · Juan Pablo Isaza Report

0

prueba esto:

 billing: { get: function() { return this.copy_checkbox ? this.shipping_data : this.billing_data },

debería volver a ejecutar la función calculada para sus datos de facturación cuando cambie copy_checkbox y, por lo tanto, actualice sus datos de facturación.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!