Javascript Svelte-on:输入上的更改处理程序仅在模糊事件后激发

Javascript Svelte-on:输入上的更改处理程序仅在模糊事件后激发,javascript,svelte,Javascript,Svelte,我构建了一个自定义输入字段: <div class="field-wrapper"> <input title={passwordError[$language]} name="password" on:change={e => updatePasswordError(password.length < 8)} bind:value={password} placeholder="Password" type="p

我构建了一个自定义输入字段:

<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>
密码变量在文件顶部以null启动。我的问题是on:change处理程序不会对每个新角色都启动,而是只对第一个角色启动,在我离开该字段之后启动,如此类推on blur事件。那么我做错了什么?我的目标是在错误消息具有正确的长度后消失

谢谢你的帮助。

试试这个:

<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>
每次按下此输入中的任何键时,此处的输入都应调用此函数

<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>
每当您按下此输入中的任何键时,此处的输入都应调用此函数,以防您希望在值更改时调用函数

<script>
$:updatePasswordError(password.length < 8)
</script>
如果要在值更改时调用函数,则应使用

<script>
$:updatePasswordError(password.length < 8)
</script>

这很可能是由于文本输入上的事实更改事件被指定为以这种方式运行;对于即时通话,请尝试按建议的输入或键控事件。我忘了本机实现是这样工作的。我有React背景,所以我习惯了另一种方式^^^这很可能是因为文本输入上的事实更改事件被指定为以这种方式进行;对于即时通话,请尝试按建议的输入或键控事件。我忘了本机实现是这样工作的。我有一个React背景,所以我习惯了另一种方式^^输入事件也会在仅用鼠标粘贴剪贴板值时触发。不会使用keyup。仅在使用鼠标粘贴剪贴板值时也会触发输入事件。凯普不会。