javascript - 如何在 meteor 中获取表单值?

标签 javascript html meteor

我收到一个错误 Uncaught TypeError: Cannot read property 'value' of undefined 但它与我调用事件的方式有关。

这是我的代码的框架:

HTML

<template name="register">
    <form>
        <input type="text" name="username">
        <input type="email" name="email">
        <input type="password" name="password">

        <button type="button" class="register">Register</button>
    </form>
</template>

JavaScript

Template.register.events({
    'click .register': function(e) {
        e.preventDefault();
        var getUser = e.target.username.value;
        var getEmail = e.target.email.value;
        var getPassword = e.target.password.value;

        console.log("user: " + getUser);
    }
)};

我觉得 click 事件 按钮类没有返回任何值。我尝试使用 submit 事件,但我不知道如何检索值。

最佳答案

首先,在按钮类型属性之后添加关闭 ",其次,因为这是一个表单,类型应该是 submit,然后在您的事件处理程序中应该监听表单提交。目前这些值在您的目标上不存在,因为当您需要监听表单时它只是一个按钮。

<template name="register">
    <form class="form-register">
        <input type="text" name="username">
        <input type="email" name="email">
        <input type="password" name="password">

        <button type="submit" class="register">Register</button>
    </form>
</template>

现在,我们向表单添加了一个类,更新了按钮类型。我们现在将收听表单提交:

Template.register.events({
    'submit .form-register': function(event, template) {
        event.preventDefault();
        var getUser = event.target.username.value;
        var getEmail = event.target.email.value;
        var getPassword = event.target.password.value;

        console.log("user: " + getUser);
    }
)};

虽然我没有对此进行具体测试,但这会让您走上正轨。请注意,我已将模板参数添加到事件处理程序,因为这是第二个参数。这使您也可以访问正在使用的模板,这比您现在使用事件目标的方式要好一些。查看 event maps 的文档这将讨论第二个参数返回一个模板实例,该实例具有许多有用的方法,例如 find、findAll 等,checkout template instances here .

最终,我现在首选的在提交事件中检索表单值的方法是将表单绑定(bind)到 reactive dictionary。并在那里访问它们,但它是一个更复杂的模式,需要一些脚手架。

关于javascript - 如何在 meteor 中获取表单值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34253551/

相关文章:

javascript - 为什么我的时钟添加时间功能不起作用?

javascript - 如何在表单对象中包含按钮的值?

javascript - 动态改变图像大小

javascript - React JS onClick 事件在标签内

HTML 5 Canvas 开源绘图工具集 API?

meteor - 单击强制从 S3 下载

部署后,Meteor 读取 CSV 文件以填充数据库不起作用

javascript - 如何使用动态添加和删除行的 Bootstrap 形式将值从 javascript 传递到 PHP?

javascript - 使用其他脚本文件 Meteor 中的脚本文件的正确方法是什么?

javascript - 使用 Angular 服务在 ng-view 页面之间共享数据