如何检查是否已使用javascript单击按钮?

时间:2012-06-28 10:58:34

标签: c# javascript asp.net

这里我需要使用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 个答案:

答案 0 :(得分: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"  />

OR(在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

答案 1 :(得分: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();
   }
}

答案 2 :(得分: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;" />

答案 3 :(得分: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;

这是DEMO