我正在尝试阻止在我的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
答案 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元素的值:
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元素,因此您无法在其上调用值。