提前道歉,我无法提供任何实际的代码,因为该问题出现在当前私有页面中 :-/ 请耐心等待。
我有一个HTML表单,将一个(专有的)日历小部件附加到其中一个文本输入字段上。当用户切换到该字段时,日历会出现。在日历上有一些按钮(用于转到上一个/下一个月)。当用户点击其中一个按钮时,日历会相应地更新自身,但同时 - 表单提交!日历代码中没有任何东西会接触除了日历自身和与之关联的文本输入字段之外的任何内容,更不用说提交表单了! 我希望得到以下问题的任何线索:
1)在这种情况下,可能是什么样的内容提交了表单?
2)通常还有哪些方式可以提交表单,除了点击提交按钮或按Enter键之外?(特别是,普通的按钮是否会提交表单?在什么情况下?)
3)如果我无法解决此问题,则作为解决方法,是否有一种方法可以完全禁用提交表单(然后在提交键附加的事件处理程序中重新启用它)?
注意事项:除此之外,该日历的行为正常 - 对键事件和日期本身(不是按钮)的单击事件正常响应。我在Firefox和Chrome上尝试过,并得到了相同的行为。我尝试使用FireBug逐步跟踪单击事件处理程序,一切都看起来非常正常 - 但是当它完成时,表单被提交(并且页面重新加载)。该小部件使用jQuery 1.7.2。非常感谢您在理解和/或解决这个问题方面提供的任何帮助!
e.preventDefault()
- 大多数按钮将提交表单/页面,除非您明确阻止该默认行为。如果这不起作用,请尝试e.stopPropagation()
。 - mpen