【发布时间】:2010-10-01 00:18:22
【问题描述】:
我正在尝试使用 jQuery 的 .delegate() 函数来捕捉提交按钮的按下并防止页面被重新加载。
它在我尝试过的所有浏览器中都能正常工作,但 Internet Explorer!
让我用代码解释一下,我有这个由 JS 动态生成的 HTML:
<form id='submit-form'>
<input type='text' id='blah' />
<input type='submit' id='blahbutton' />
</form>
我的 Javascript 看起来像这样:
$("body").delegate("#submit-form", "submit", function(event)
{
// to logic here
return false;
});
当在文本框中输入并使用“Enter”键盘按钮时,它会很好地执行 JS 并且页面保持原样。但是当用鼠标点击提交按钮时,它会重新加载页面并提交表单。
我怎样才能使单击按钮与在 Internet Explorer 上的输入中按 Enter 相同?
【问题讨论】:
-
如果不使用
.delegate()会怎样?老实说,您有一个独特的一次性表单,您可能无论如何都不需要使用事件委托。 -
不,它是由 JS 生成的,因为新表单是根据用户输入创建的。根据用户的不同,可以创建 1 到 100 个。