Meteor 控制文本字段中的复制和粘贴
Meteor controlling copying and pasting in a text field
我试图阻止在我的 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
this
是上下文是input id="username
字段所在的数据上下文。
要获取字段的 DOM 元素,请使用 e.currentTarget
而不是 this
。
以下示例说明如何提取和设置 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 元素,因此您不能对其调用值。
正如 Akshat 提到的获取字段 DOM 元素使用 e.currentTarget 而不是这个,回到你的问题代码示例,请尝试以下
Template.UserRegisteration.events({
'input #username':function(e,t){
var text = e.currentTarget.value;
e.currentTarget.value = text.replace(/\s/g,'');
}
});
我试图阻止在我的 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
this
是上下文是input id="username
字段所在的数据上下文。
要获取字段的 DOM 元素,请使用 e.currentTarget
而不是 this
。
以下示例说明如何提取和设置 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 元素,因此您不能对其调用值。
正如 Akshat 提到的获取字段 DOM 元素使用 e.currentTarget 而不是这个,回到你的问题代码示例,请尝试以下
Template.UserRegisteration.events({
'input #username':function(e,t){
var text = e.currentTarget.value;
e.currentTarget.value = text.replace(/\s/g,'');
}
});