我正在调试国外复杂的js代码。有一个按钮,当我按下它时,页面会被重新加载,但这不应该发生。当我在点击处理程序内部中断时,它会完全执行,并且在完成后会执行页面repload / refresh。退出处理程序后,我进入了jQuery深度。我如何跟踪这段代码使页面重新加载?谢谢!

最佳答案

问题在于<button>声明不包含type属性。这是what the HTML standard says about that:


  type属性控制按钮的行为。
  活性。它是一个枚举的属性。下表列出
  属性的关键字和状态-左侧的关键字
  列映射到同一列第二列中单元格中的状态
  行作为关键字。

+---------+---------------+--------------------+
| Keyword |     State     |  Brief description |
+---------+---------------+--------------------+
| submit  | Submit Button | Submits the form.  |
| reset   | Reset Button  | Resets the form.   |
| button  | Button        | Does nothing.      |
+---------+---------------+--------------------+

  
  缺少的值默认为“提交按钮”状态。
  
  如果type属性处于Submit Button状态,则元素为
  特别是一个提交按钮。


提交按钮的默认操作是将表单提交到服务器(从而重新加载页面)。为防止这种情况,您需要在按钮上指定type="button"属性,或者指定prevent the default action in your click handler.

JSFiddle showing all cases.

10-07 19:14
查看更多