Maison  >  Questions et réponses  >  le corps du texte

Dans Vue.js, attribuez une valeur à une entrée lorsqu'elle change

Je travaille sur un formulaire que je dois remplir à l'aide de Vue.JS. Fondamentalement, je dois mettre à jour la valeur du champ "price_vat" avec quelques calculs à chaque fois qu'une entrée nommée "price_user" est mise à jour. Usign jquery, tout se passe. L'utilisation de Vue ne transmet pas les données d'accueil à la méthode POST.

<div class="col-md-6" v-show="form.active">
                            <div class="form-group">
                                <label >{{__('Price')}}</label>
                                <input type="number" v-model="form.price_user" class="form-control">
                            </div>
                        </div>
                        <div class="col-md-6" v-show="form.active">
                            <div class="form-group">
                                <label >{{__('Price with VAT')}}</label>
                                <input type="number" v-model="form.price_vat" class="form-control">
                            </div>
                        </div>

P粉343408929P粉343408929211 Il y a quelques jours328

répondre à tous(1)je répondrai

  • P粉214176639

    P粉2141766392024-03-22 09:58:03

    Si j'ai bien compris, vous souhaitez changer form.price_user 时更改 form.price_vat à chaque fois en tapant la saisie.

    Vous pouvez utiliser watch 来完成此操作。只需在 vue 中添加以下 methods et c'est tout :

    watch:{
       'form.price_user':function():{
          this.form.price_vat += 1
        },
    }

    Donc, dans ce code, à chaque fois form.price_user 发生变化时,您都会将 form.price_vat 的值更新为 1。您可以在 watch fait quelque chose à l'intérieur de la fonction.

    La partie vue complète sera :

    data(){
      return:{
         form:{
           price_vat :'',
           price_user : '',
         }
      }
    },
    
    methods:{},
    
    watch:{
           'form.price_user':function():{
              this.form.price_vat += 1
            },
    }

    répondre
    0
  • Annulerrépondre