我有一些问题后,使用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只是不触发原始按钮的单击。我已经检查了所有对按钮的引用都是正确的。我也在这里的论坛中搜索了一下,找到了live/delegate等,但不确定它们是否对我有效,因为我们的按钮总是在那里,它们不是通过呈现的。ajax --实际上,没有任何东西是通过。ajax在第一次加载之后。所以,我不确定为什么点击按钮在IE上不起作用,而在FF上起作用。你知道为什么会发生这种情况吗?
谢谢你,妮汀
发布于 2011-07-27 01:27:17
因此,在IE中,JQuery似乎无法将单击事件绑定到原始按钮。我改变了点击按钮的代码,并使用了普通的javascript点击,它开始在IE中工作。现在我的代码是这样的: document.getElementById($(daButton).attr("id"));origButton = var origButton.click();问题暂时解决了:)
发布于 2011-07-26 06:24:29
你试过使用jQuery的'.live()‘函数吗?您说按钮是插入到DOM中的,因此单击函数将不起作用,因为事件将仅在页面加载时绑定。如果使用.live(),它将为已经存在的以及将来存在的任何DOM元素绑定事件。
https://stackoverflow.com/questions/6820163
复制相似问题