Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在meteor中阻止窗体按钮上重新加载页面?_Javascript_Html_Http_Meteor - Fatal编程技术网

Javascript 在meteor中阻止窗体按钮上重新加载页面?

Javascript 在meteor中阻止窗体按钮上重新加载页面?,javascript,html,http,meteor,Javascript,Html,Http,Meteor,不确定这是流星问题、JavaScript问题还是其他问题。单击表单按钮会导致不需要的页面重新加载 其他信息: 使用引导包 使用jQuery包 使用主干包 即使删除了上述包,页面重新加载问题仍然会发生 注释掉Posts.insert()行也无法修复它 //来自application.js //*这是应用程序中唯一与事件相关的代码(除了meteor从我们这里提取的任何幕后资料) //从index.html <template name="new_post"> <form cl

不确定这是流星问题、JavaScript问题还是其他问题。单击表单按钮会导致不需要的页面重新加载

其他信息:

  • 使用引导包
  • 使用jQuery包
  • 使用主干包
  • 即使删除了上述包,页面重新加载问题仍然会发生
  • 注释掉Posts.insert()行也无法修复它

    //来自application.js
    //*这是应用程序中唯一与事件相关的代码(除了meteor从我们这里提取的任何幕后资料)

    //从index.html

    <template name="new_post">
      <form class="form-horizontal">
        <fieldset>
        <div class="control-group">
          <!-- Text input-->
          <label class="control-label" for="title">Title</label>
          <div class="controls">
            <input type="text" id="title" value="{{text}}" class="input-xlarge">
            <p class="help-block">Hint: Summarize your post in a few words</p>
          </div>
        </div>
        <div id="form-part-2">
          <div class="control-group">
            <label class="control-label" for="categories">Category</label>
            <div class="controls">
              <select class="input-xlarge" id="category">
                {{#each categories}}
                  <option value="{{defaultLabel}}">{{defaultLabel}}</option>
                {{/each}}
              </select>
              <p class="help-block">Hint: Choose a category</p>
            </div>
          </div>
            <!-- Button -->
            <div class="control-group">
              <div class="controls">
                <button class="btn btn-success" id="submit">Done</button>
              </div>
            </div>
        </div><!-- end div form-part-2 -->
        </fieldset>
      </form>
    </template>
    
    
    标题
    

    提示:用几句话概括一下你的帖子

    类别 {{{#每个类别} {{defaultLabel}} {{/每个}}

    提示:选择一个类别

    多恩

我认为您必须在函数结束时返回false以防止提交。

除了返回
false
之外,您还可以在以下位置调用
preventDefault()


这只会阻止默认操作(即提交表单),但不会阻止事件传播。

event.preventDefault()在firefox上不起作用。如果此方法适用于您,您可以将其放在开头,这样以后的任何错误都不会导致页面刷新。我也遇到了这个问题。谢谢return false在Meteor 1.0和Firefox 33中似乎对我不起作用。不,你不应该使用return false。您应该始终使用
event.preventDefault()
<template name="new_post">
  <form class="form-horizontal">
    <fieldset>
    <div class="control-group">
      <!-- Text input-->
      <label class="control-label" for="title">Title</label>
      <div class="controls">
        <input type="text" id="title" value="{{text}}" class="input-xlarge">
        <p class="help-block">Hint: Summarize your post in a few words</p>
      </div>
    </div>
    <div id="form-part-2">
      <div class="control-group">
        <label class="control-label" for="categories">Category</label>
        <div class="controls">
          <select class="input-xlarge" id="category">
            {{#each categories}}
              <option value="{{defaultLabel}}">{{defaultLabel}}</option>
            {{/each}}
          </select>
          <p class="help-block">Hint: Choose a category</p>
        </div>
      </div>
        <!-- Button -->
        <div class="control-group">
          <div class="controls">
            <button class="btn btn-success" id="submit">Done</button>
          </div>
        </div>
    </div><!-- end div form-part-2 -->
    </fieldset>
  </form>
</template>
'click #submit' : function (template, event) {
  ...
  event.preventDefault();
}