当我遇到这个奇怪的问题时,我只是在玩Meteor.js,我有一个带有两个文本字段的表单,但不知怎的,我的事件不是在听取提交。 当我删除一个文本字段时,一切正常......
以下是我的表单模板:
<template name="new_timer">
<div class="timer timer--empty">
<form id="new_timer">
<input type="text" name="timer__name" class="timer__name" placeholder="Timer name">
<input type="text" name="timer__description" class="timer__description" placeholder="Timer description">
</form>
</div>
</template>
在客户端:
Template.new_timer.events({
'submit form': function(e) {
console.log('new timer');
e.preventDefault();
}
})
这似乎不起作用,但是当我将模板更改为以下内容时,它可以正常工作
<template name="new_timer">
<div class="timer timer--empty">
<form id="new_timer">
<input type="text" name="timer__name" class="timer__name" placeholder="Timer name">
</form>
</div>
</template>
我只是忽略了一些非常基本的东西吗?
答案 0 :(得分:1)
您可以添加
之类的活动'keyup form': function(e) {
if (e.keyCode === 13) {
// do something
}
}
基本上不使用单页应用程序中的提交。在这种应用程序中,一切都是基于事件的,您永远不会重新加载页面,因此您永远不会真正“提交”表单。
“形式”标签变得无用,大多数开发人员(包括我)都习惯性地保留它,但这不是必需的。
答案有点迟,我希望它可以帮助别人!
答案 1 :(得分:0)
我有类似的问题,如果没有这个,提交事件不能用更多的输入:
<input type="submit" hidden="hidden">