在IE上提交ajax表单后,JQuery按钮单击无法正常工作

在使用JQuery ajax提交表单后点击按钮时遇到一些麻烦。 这是我的html的样子:

上面提到的按钮实际上是由第三方工具放入DOM中的,在页面渲染中我们通过隐藏按钮并生成JQuery按钮来接管它们,然后模仿原始按钮的行为。 所以,基本上,用户会在表单中填写第三方的东西,填写我们的表单,然后单击JQuery按钮,我们首先将表单提交到服务器然后单击原始按钮以便第三方工具可以提交自己的东西。 以下是提交表单的代码:

 clickoriginalbutton = function(passedButton) { $(passedButton).click(); }, //save our data submitourform = function(buttonreference) { $('#our_form').ajaxForm(options); $('*').button('disable'); $('#our_form').ajaxSubmit({ iframe: true, dataType: 'json', success: function(data){ if (data.status == 'success') { clickoriginalbutton (getOrigButton(buttonreference)); }; } }); } 

如您所见,保存表单后单击原始按钮。 按钮单击在FF中正常工作,但在IE中失败。 我可以看到我们的表单已提交并且成功返回,但IE只是不会触发原始按钮的单击。 我已经检查过所有对按钮的引用都没问题。 我也在这里的论坛搜索并找到了现场/代表等,但不确定它们是否适合我,因为我们的按钮总是在那里,它们不会通过。 ajax – 实际上,没有任何东西通过渲染。 第一次加载后的ajax。 因此,不确定为什么按钮单击在IE上工作时无效。 任何想法为什么会发生这种情况。

谢谢,Nitin

你尝试过使用jQuery的’.live()’函数吗? 你说按钮被插入到DOM中,因此单击function将无法工作,因为事件只会在页面加载时受到限制。 如果使用.live(),它会为已经存在且将来存在的任何DOM元素绑定事件。

所以看起来在IE中JQuery无法将click事件绑定到原始按钮。 我更改了clickoriginalbuttons代码并使用了正常的javascript点击,它开始在IE中工作。 现在我的代码是这样的:var origButton = document.getElementById($(daButton).attr(“id”)); origButton.click(); 问题现在解决了:)