asp:ImageButton点击使用javascript无法正常工作

时间:2015-01-22 13:57:09

标签: javascript c# asp.net

UI

<asp:ImageButton ID="btnAdd" runat="server" AlternateText="AddNew"
     ImageUrl="../images/add.png" CausesValidation="true" OnClick="btnAdd_Click" />
<asp:Image ID="imgProceed" ImageUrl="~/Images/proceed.gif" runat="server"/>

代码背后

btnAdd.Attributes.Add("onclick", "return false;"); //Adding client event to avoid submit for some validation purpose
imgProceed.Attributes.Add("onclick", "proceed('" + btnAdd.ClientID + "')");

的JavaScript

function proceed(buttonId)
{
    document.getElementById('<%=btnAdd.ClientID%>').removeAttribute("onclick");
    document.getElementById('<%=btnAdd.ClientID%>').click();
}

我尝试了上面的代码。我想通过JavaScript click ImageButton。但它没有用。我想通过单击图像按钮来激活服务器端"btnAdd_Click"事件。

2 个答案:

答案 0 :(得分:0)

您正在设置它以调用名为proceed

的javascript方法
imgProceed.Attributes.Add("onclick", "proceed('" + btnAdd.ClientID + "')");

但您的javascript方法实际上称为proceedToAdd

function proceedToAdd(buttonId)

答案 1 :(得分:0)

尝试以下代码 -

<asp:ImageButton ID="btnAdd" runat="server" AlternateText="AddNew"
     ImageUrl="../images/add.png" CausesValidation="true" OnClick="btnAdd_Click" />
<asp:Image ID="imgProceed" ImageUrl="~/Images/proceed.gif" runat="server"/>

代码背后 -

protected void btnAdd_Click(object sender, ImageClickEventArgs e) 
      {
         //Code to handle click
      }

根据您的代码,您将onclick事件附加到Proceed功能。因此,如果它正在进入,则已经点击了继续功能意味着按钮。无需再次点击它。

如果您想点击其他javascript代码,那么下面的行就足够了。

document.getElementById('<%=btnAdd.ClientID%>').click();

也不需要下面的代码行

btnAdd.Attributes.Add("onclick", "return false;");

您可以在Proceed功能中执行此决定。如果在Proceed函数中返回true,则它将提交给服务器。如果您返回false,它将在客户端上显示您想要的验证消息。