Svelte - on: изменение обработчика при срабатывании ввода только после события размытия - PullRequest
0 голосов
/ 15 января 2020

Я создал собственное поле ввода:

<div class="field-wrapper">
  <input
    title={passwordError[$language]}
    name="password"
    on:change={e => updatePasswordError(password.length < 8)}
    bind:value={password}
    placeholder="Password"
    type="password" />
  <div style={`opacity: ${passwordError.show ? 1 : 0}`}>
    {passwordError[$language]}
  </div>
</div>

Переменная пароля начинается с нуля в верхней части файла. Моя проблема в том, что обработчик on: change срабатывает не с каждым новым символом, а только с первым и после того, как я покидаю поле (как и при событии on blur). Так что я сделал не так? Моя цель - чтобы сообщение об ошибке исчезло после того, как оно имеет правильную длину.

Спасибо за помощь.

1 Ответ

1 голос
/ 15 января 2020

Попробуйте:

<div class="field-wrapper">
  <input
    title={passwordError[$language]}
    name="password"
    on:keyup={e => updatePasswordError(password.length < 8)}
    bind:value={password}
    placeholder="Password"
    type="password" />
  <div style={`opacity: ${passwordError.show ? 1 : 0}`}>
    {passwordError[$language]}
  </div>
</div>

вход здесь должен вызывать функцию каждый раз, когда вы нажимаете любую клавишу внутри этого входа

...