Search code examples
laravellaravel-livewire

How to set input value based on other input in Laravel Livewire?


I have to number inputs,

  1. rate
  2. reverse of rate

what I want to do:

when a user insert rate, it should calculate(1/rate) the reverse, and fill it in reverse input.

    <!-- Rate -->
    <x-input-group type="number" min="0"  step="0.0001"/>

    <!-- Reverse -->
    <x-input-group type="number min="0" step="0.0001"/>

I know that it should do something like this:

    <!-- Rate -->
    <x-input-group type="number" min="0" wire:focusout="reverse"  step="0.0001"/>

    <!-- Reverse -->
    <x-input-group type="number min="0" step="0.0001"/>

and in my component:

public function reverse()
{
    $reverse = floatval(1 / $this->rate);
    // here I don't know how to change reverse input value
}

Now, how to change reverse value in the view?


Solution

  • you can try this

        <!-- Rate -->
        <x-input-group type="number" wire:model.lazy="rate" min="0"  step="0.0001"/>
    
        <!-- Reverse -->
        <x-input-group type="number wire:model="reverse" min="0" step="0.0001"/>
    
    // in component 
    
    public $rate, $reverse;
    
    public function updatedRate($value)
    {
       $this->reverse = floatval(1 / $this->rate);
    }