流星控制文本字段中的复制和粘贴

时间:2015-04-06 09:49:06

标签: meteor meteor-blaze

我正在尝试阻止在我的Meteor应用程序模板中的用户名字段中复制和粘贴空格,但我总是收到如下所示的错误,有人可以告诉我我做错了什么/失踪了还有其他吗?控制粘贴在Meteor模板中的文本字段中的内容的方法?感谢

        Template.UserRegisteration.events({
            'input #username':function(e,t){     
                 this.value = this.value.replace(/\s/g,'');
            }   
        });

错误:

Uncaught TypeError: Cannot read property 'replace' of undefined

3 个答案:

答案 0 :(得分:2)

this上下文是input id="username字段所在的数据上下文。

要使字段的DOM元素使用e.currentTarget而不是this

答案 1 :(得分:1)

正如Akshat提到的获取字段DOM元素使用e.currentTarget而不是这个,回到你的问题代码示例请尝试以下

    Template.UserRegisteration.events({
        'input #username':function(e,t){     
             var text = e.currentTarget.value;
             e.currentTarget.value = text.replace(/\s/g,'');
        }   
    });

答案 2 :(得分:0)

以下示例说明如何在Meteor事件中提取和设置DOM元素的值:

https://www.meteor.com/try/4

Template.body.events({
  "submit .new-task": function (event) {
    // This function is called when the new task form is submitted

    var text = event.target.text.value;

    Tasks.insert({
      text: text,
      createdAt: new Date() // current time
    });

    // Clear form
    event.target.text.value = "";

    // Prevent default form submit
    return false;
  }
});

在Meteor事件块中,“this”不是DOM元素,因此您无法在其上调用值。