我的页面上有一个输入字段(type = text)。我使用Bootstrap并设置我使用下一个HTML代码的字段:
<form fole="form">
<div class="form-group">
<input type="text" class="form-control" id="add-bookmark" value placeholder="Enter URL">
</div>
</form>
在meteor应用程序中,我有事件处理程序:
Template.new_bookmark.events({
// add new bookmark
'keyup #add-bookmark' : function(e,t) {
console.log(e.which);
if(e.which === 13)
{
当我按下输入字段中的任何按钮时,我会在控制台中获取密钥代码(如我所愿)。但是,如果我按下Enter键,控制台日志就没有任何内容,我的页面将被重新加载。
看起来我的问题的原因在于form-tag。如果我删除它一切正常。我需要做什么 ?删除表单标签或阻止在我按Enter键时重新加载页面?如果答案是第二个,我怎么能这样做?
答案 0 :(得分:1)
页面未被“重新加载”它正在被提交,这是您关注表单(在表单中选择输入字段)并按Enter键时的默认行为。如何防止这种情况,并将其添加到您的表单中:
<form name="myForm" onsubmit="return false;">
或者如果您想在提交前验证输入字段,那么您可以使用单独的函数为您进行验证:
<form name="myForm" onsubmit="return validate();">
function validate()
{
//pur you validation code here
return true;
}
至于密钥日志,实际上你会在你的日志中得到 Enter ,但事实是,当你点击 Enter 时,brwoser将做的第一个动作是提交表单,因此将开始发送新的http reqeust并开始从服务器传输信息。当发生这种情况时,您的浏览器插件(Firebug,控制台等)将暂停一段时间并等待新页面加载。 我不确定这是多么准确,但这是我理解的方式。