我正在调试国外复杂的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.