【问题标题】:Tracking input change in alpine.js跟踪 alpine.js 中的输入变化
【发布时间】:2021-01-18 18:43:43
【问题描述】:

我正在学习 alpine.js 并尝试捕获用户输入值。 我使用了“x-on:input”,但它没有调用函数

下面是简单的表单输入

 <input type="email" class="form-control" x-on:input.debounce="validateEmail($event)" x-model="userEmail" id="email" aria-describedby="emailHelp" placeholder="Enter email">

这是我 index.js 中的基本方法

function validateEmail(event){
console.log(userEmail);

}

函数没有被调用。

添加示例stackblitz

请指导

谢谢 施鲁蒂奈尔

【问题讨论】:

    标签: javascript alpine.js


    【解决方案1】:

    您正在寻找x-on:change

    <input type="email" class="form-control" x-on:change.debounce="validateEmail($event)" x-model="userEmail" id="email" aria-describedby="emailHelp" placeholder="Enter email">
    

    您还需要让您的函数从$event.target.value 读取值

    由于您已经获得了x-model,您可以将$watch('userEmail', (val) =&gt; {}) 添加到x-init 并以这种方式进行验证。

    编辑:(基于stackblitz)

    完整组件:

    <form x-data="{
      userEmail: '',
      validateEmail(event) {
        console.log(event.target.value);
      },
      submit($event) {
        console.log(this.userEmail)
      }
    }">
      <input type="email"  class="form-control"
        x-on:change.debounce="validateEmail($event)"
        x-model="userEmail"
        id="email"
        aria-describedby="emailHelp"
        placeholder="Enter email"/>
      <button type="button" x-on:click="submit" class="btn btn-block">
        Submit
      </button>
    </form>
    

    【讨论】:

    猜你喜欢
    • 2019-07-13
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2017-06-10
    相关资源
    最近更新 更多