[英]JQuery button click not working after ajax form submit on IE
使用JQuery ajax提交表单后,在单击按钮时遇到一些麻烦。 这是我的html外观:
<div>
<!-- normal HTML buttons that are overridden by JQuery for styling purposes -->
<!-- Here, on render, the HTML button is hidden and a similar JQuery button is shown on the DOM -->
</div>
<div>
<!--- Stuff generated by a third-party tool -->
</div>
<div>
<!--- Our form loaded using JQuery -->
</div>
上面提到的按钮实际上是由第三方工具放到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。 因此,不确定在FF上为什么按钮单击在IE上不起作用。 任何想法为什么会这样。
谢谢你,尼丁
您是否尝试过使用jQuery的'.live()'函数? 您说这些按钮已插入DOM,因此单击功能将不起作用,因为该事件仅在页面加载时绑定。 如果使用.live(),则它将事件绑定到已经存在的所有DOM元素,并在将来。
因此,看起来在IE JQuery中无法将click事件绑定到原始按钮。 我更改了clickoriginalbuttons代码,并使用了普通的javascript单击,它开始在IE中运行。 现在我的代码是这样的:var origButton = document.getElementById($(daButton).attr(“ id”)); origButton.click(); 该问题暂时解决了:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.