event.currentTarget.INPUT.value`如何在Meteor表单提交处理程序中为我提供输入值?
我发现可以从Meteor中提交的表单中获取文本输入值。我写了我的信。很好!下面是我的表单提交事件处理程序的一个片段:event.currentTarget.INPUT.value`如何在Meteor表单提交处理程序中为我提供输入值?,meteor,meteor-blaze,Meteor,Meteor Blaze,我发现可以从Meteor中提交的表单中获取文本输入值。我写了我的信。很好!下面是我的表单提交事件处理程序的一个片段: 'submit form': function(event, template) { event.preventDefault(); Assets.insert({ name: event.target.inputName.value, location: event.target.inputLocation.value, value: event
'submit form': function(event, template) {
event.preventDefault();
Assets.insert({
name: event.target.inputName.value,
location: event.target.inputLocation.value,
value: event.target.inputValue.value
});
}
交叉发布。对meteor本人来说非常陌生,所以我可能完全错了,但我相信您的事件目标只是标准javascript,而不是特定于meteor或jquery。我一直认为它是创建您自己的
对象的简写。addEventListener()
,因此您的playerName
将成为表单的子元素,因为它是对象的键
想象一下,如果它是像form.addEventListener('submit',函数(e){…})
这样的设置,可能会使它更熟悉
至于第2点,如果需要,我不明白为什么不能使用currentTarget。我不认为它会更安全,除非你真的不知道事件可能来自哪里(可能是创建一个自定义包?)在这种情况下,你不是在使用
模板
对象,而是使用简单的jQ方式。快速查看包含示例代码的页面,它们使用function(event)
,而不是function(event,template)
(我更喜欢后者,但这是口味问题)。下面是如何使用模板
对象
假设您的表单如下所示
<template name='createAccount'>
<form role="form">
<input placeholder="Your Name" name="name" type="text" />
<input placeholder="E-Mail Address" name="email" type="email" />
<input placeholder="Password" name="password" type="password" />
<div id="submitForm" class="outerButton">
(SOME BUTTON)
</div>
</form>
</template>
event.target
返回DOM元素。在您的例子中,它是表单
元素,您可以使用命名属性获取其节点,请参见Template.createAccount.events({
'click #submitForm': function (event, template) {
var displayName = template.find("input[name=name]").value;
var eMailAddress = template.find("input[name=email]").value;
var password = template.find("input[name=password]").value;
< INSERT displayName, eMailAddress, password IN COLLECTION>
}
})