繁体   English   中英

在IE上提交Ajax表单后,jQuery按钮单击不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM