1

在这里,我需要使用 javascript 检查按钮单击,即)如果单击按钮 A,我将调用一个 javascript 函数,如果单击按钮 B,我将调用另一个 javascript 函数。

if(document.getElementById('imgBTNExportPPT').clicked == true)
{
   ShowDialogExportPPTPOPUP();
}
else if(document.getElementById('btnShowModal').clicked == true)
{
   ShowDialogPrintPOPUP();
}

      <asp:ImageButton ID="imgBTNExportPPT" runat="server" Width="15" Height="15" border="0"
                                                            OnClick="imgBTNExportPPT_Click" ImageUrl="~/Images/PPT_icon.png" />
  <asp:ImageButton ID="btnShowModal" runat="server" Width="15" Height="15" border="0"
                                                         ImageUrl="~/Images/Print_icon.png" onclick="btnShowModal_Click"  />

有可能吗?有什么建议吗??

4

4 回答 4

5

试试这个 :

function buttonClicked(choice)
{
   if(choice == 'A')
   {
      ShowDialogExportPPTPOPUP();
   }
   else if(choice ==  'B')
   {
      ShowDialogPrintPOPUP();
   }
}

HTML 代码应该是这样的:

<input type='button' value='ButtonA' onclick="buttonClicked('A')" />
<input type='button' value='ButtonB' onclick="buttonClicked('B')" />

如果它是服务器端控件,那么您可以通过两种方式进行操作:

  <asp:ImageButton onClientClick="buttonClicked('A')" ID="imgBTNExportPPT" runat="server" Width="15" Height="15" border="0"
                                                            OnClick="imgBTNExportPPT_Click" ImageUrl="~/Images/PPT_icon.png" />
  <asp:ImageButton onClientClick="buttonClicked('A')" ID="btnShowModal" runat="server" Width="15" Height="15" border="0"
                                                         ImageUrl="~/Images/Print_icon.png" onclick="btnShowModal_Click"  />

或(在 C# 中)

{
 imgBTNExportPPT.Attributes.Add("onclick", "buttonClicked('A')");
 btnShowModal.Attributes.Add("onclick", "buttonClicked('B')");
}

http://msdn.microsoft.com/en-us/library/7a9d6h4f(v=vs.80).aspx

于 2012-06-28T11:03:24.950 回答
3

您必须使用 ImageButton 的 OnClientClick 属性来分配 javascript 函数。您可以在 javascript 调用中传递它以获取被单击的按钮对象。

OnClientClick="TestClick('A', this);" 在按钮中添加这个

在 .aspx 页面中

<asp:ImageButton OnClientClick="TestClick('A', this);" ID="imgBTNExportPPT" runat="server" Width="15" Height="15" border="0"                                                                  OnClick="imgBTNExportPPT_Click" ImageUrl="~/Images/PPT_icon.png"  />

<asp:ImageButton OnClientClick="TestClick('B', this);" ID="btnShowModal" runat="server" Width="15" Height="15" border="0"
                                                                 ImageUrl="~/Images/Print_icon.png" onclick="btnShowModal_Click"  />

在脚本中

function TestClick(choice, btnClicked)
{
   alert(btnClicked.id + " clicked");
   if(choice == 'A')
   {
      ShowDialogExportPPTPOPUP();
   }
   else if(choice ==  'B')
   {
      ShowDialogPrintPOPUP();
   }
}
于 2012-06-28T11:11:14.357 回答
2

您可以添加一个标识符或只在 onclick 事件中调用一个函数。例如:

<script type="text/javascript">
    function onButtonClick(button)
    { 
        alert("button " + button + " clicked!"); 
    }
</script>

<button id="ButtonA" onclick="javascript:onButtonClick('buttonA'); return false;" />
<button id="ButtonB" onclick="javascript:onButtonClick('buttonB'); return false;" />
于 2012-06-28T11:08:54.233 回答
2

这是一个很好的例子。将您的代码作为回调传输runOnce并创建一个如下所示的 onclick 事件处理程序,以将您的函数限制为一次调用:

function runOnce( callback ) {

  var done = false;

  return function() {

    if ( !done ) {
      done = true;

      callback();

    }

  };

}

var one = runOnce(function() {
    alert('Once');
}),
    two = runOnce(function() {
    alert('Once only too.');
});

document.getElementById('first').onclick = one;
document.getElementById('second').onclick = two;

这是一个演示

于 2012-06-28T11:18:27.823 回答