使JavaScript onClientClick事件在IE10中运行时遇到问题

chesh78

我仍然是编码的新手,而我的JavaScript几乎不存在。我曾尝试寻找其他答案,但不确定自己要查找的内容/所在,因此,如果这是重复的内容,我们深表歉意。无论如何...

我有一个asp.net c#页面,该页面将一系列数据从数据库中拉到GridView中。我希望为页面用户提供的选项之一是能够删除行,并且作为此过程的一部分,我在页面中包含了一些JavaScript,以提示他们仔细检查是否要继续删除。我的问题是,尽管该脚本在Chrome中运行良好,但在IE10中却无法运行(可能是因为Chrome更宽容了)。谁能告诉我我可能会出问题的地方吗?

我的JavaScript函数是:

<script type="text/javascript">
    function confirmDelete(id) {
        try {
            console.log('trying');
            if (confirm('Do you really want to delete this entry?')) {
                $('#' + id).html('Processing... <i class="fa fa-spinner fa-spin"></i>').attr('disabled', 'disabled').addClass('disabled');
                return true;
            }
            $('#' + id).html('<span class="btn btn-small btn-spinner">Delete</span>').removeClass('disabled').removeAttr('disabled');
        } catch (e) { console.log(e.message);}
        return false;

    }
</script>

并链接到以下GridView:

<asp:UpdatePanel ID="upCurrentServicesGrid" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
        <asp:GridView ID="grdviewCurrentSystems" CssClass="table-data" UseAccessibleHeader="true" AutoGenerateColumns="false" runat="server">
            <Columns>
                <asp:BoundField DataField="systemName" HeaderText="System" ItemStyle-Width="10%"/>
                <asp:TemplateField HeaderText="Status" ItemStyle-Width="46%">
                    <ItemTemplate>
                            <div style="display:none">
                            <asp:TextBox ID="RowId" runat="server" Text='<%# Eval("id") %>' />
                            </div>
                            <div style="display:none">
                                <asp:TextBox ID="SelectedVal" runat="server" Text='<%# Eval("systemStatus") %>' />
                            </div>
                            <pfp:DropDownList ID="pfpdropSystemStatus"  CausesValidation="false" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Further information" ItemStyle-Width="50%">
                    <ItemTemplate>
                        <div>
                            <pfp:TextBox ID="pfptxtSystemStatusInfo" TextMode="MultiLine" MaxLength="300" CssClass="textarea1" runat="server" Text='<%# Eval("systemInformation") %>' />
                        </div>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Delete" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle">
                    <ItemTemplate>
                        <div>
                            <asp:LinkButton ID="lnkbtnDelSystem" CausesValidation="false" OnClick="lnkbtnDelSystem_Click" OnClientClick="return confirmDelete(this.id); return false;" CommandArgument='<%# Eval("id") %>' runat="server">
                                <span class="btn btn-small btn-spinner">Delete</span> 
                            </asp:LinkButton>
                        </div>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>

这是最后一行(链接按钮),这让我感到悲伤-就像我说的那样,它在Chrome浏览器中可以完美运行,但是它只是挂在IE10中(尽管我已经检查过控制台,而且我知道它已经走得很远了,因为它读为“ trying” ')。

有什么建议吗?

谢谢 :)

ps2goat

如果您在IE中的按钮回发之前禁用了该按钮,则不会发生回发。settimeout回发启动后,您必须执行或禁用按钮的操作。

例子:

function confirmDelete(id) {
        try {
            console.log('trying');
            if (confirm('Do you really want to delete this entry?')) {
                $('#' + id).html('Processing... <i class="fa fa-spinner fa-spin"></i>').addClass('disabled');
                // new code here
                setTimeout( function(){
                    $('#' + id).attr('disabled', 'disabled');
                }, 0);
                return true;
            }
            $('#' + id).html('<span class="btn btn-small btn-spinner">Delete</span>').removeClass('disabled').removeAttr('disabled');
        } catch (e) { console.log(e.message);}
        return false;

    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章