按钮触发器不会被调用

时间:2016-02-25 17:32:48

标签: javascript jquery asp.net button triggers

当用户尝试删除客户时,会出现一个弹出窗口,其中列出了原因。在这下面是一个删除按钮,它在后面的代码中调用删除功能。 但按钮没有被触发,我没有收到任何错误,所以我不知道它为什么不起作用

第一个按钮只显示弹出对话框,第二个按钮调用btnDelete_Click函数。

按钮:

 <a runat="server" id="btnDelete" style="float:right;"  class="btnDeleteLarge" href="#" onclick="OpenDeleteDialog()">Delete</a>  
 <asp:Button runat="server" ID="btnDeleteReason" CssClass="btnDeleteLarge"  ToolTip="Delete customer" style="float:right;display:none" OnClick="btnDelete_Click" Text="Delete"  /> 

使用Javascript:

function pageLoad(sender, args)
    {
        $("#dvAddReason").dialog({
            modal: true,
            autoOpen: false,
            appendTo: "form",
            buttons: {
                'Delete': function () {
                    if(confirm('Are you sure you want to delete customer?')){
                        $('#<%=btnDeleteReason.ClientID %>').trigger('click');
                        }
                    },                
                    Cancel: function () {
                        $(this).dialog("close");
                    }
                }
        });
    }

    function OpenDeleteDialog(){
        $("#dvAddReason").dialog("open");
    }

所以问题在于行$('#<%=btnDeleteReason.ClientID %>').trigger('click');。触发器无效,btnDelete_Click永远不会被调用。

我也尝试将按钮更改为链接按钮:

<asp:LinkButton Visible="true" runat="server" ID="btnDeleteReason" OnClick="btnDelete_Click">LinkDelete</asp:LinkButton>

然后在javascript中调用__doPostBack('ctl00$ContentPlaceHolder1$btnDeleteReason', '');。但这也不起作用。

1 个答案:

答案 0 :(得分:0)

我说你的选择器很奇怪。 #<%=btnDeleteReason.ClientID %>我看到你正在尝试做什么,但我不认为它会以这种方式工作。你必须首先解决<%=btnDeleteReason.ClientID %>的意思(我猜它会像btnDeleteReason.23那样给你一样),然后将它用作选择器($('#btnDeleteReason.23').trigger('click')

PS:也许这可行:$('#<%=btnDeleteReason.ClientID %>').click();

PPS:尝试使用console.log(&#39;&lt;%= btnDeleteReason.ClientID%&gt;&#39;)查看它为您提供的内容。