【问题标题】:How to check if a button has been clicked using javascript?如何使用javascript检查是否已单击按钮?
【发布时间】:2012-06-28 19:18:31
【问题描述】:

这里我需要使用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"  />

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

【问题讨论】:

标签: c# javascript asp.net


【解决方案1】:

试试这个:

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

【讨论】:

  • :它是一个 asp 按钮控件,然后我必须在 onclientclick 中调用它??
【解决方案2】:

您必须使用 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();
   }
}

【讨论】:

    【解决方案3】:

    您可以添加一个标识符或只在 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;" />
    

    【讨论】:

      【解决方案4】:

      这是一个很好的例子。将您的代码作为回调传输到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

      【讨论】:

        猜你喜欢
        • 2011-02-16
        • 2015-05-28
        • 2013-05-22
        • 2013-08-20
        • 1970-01-01
        • 2011-05-11
        • 2014-05-19
        • 1970-01-01
        • 2015-01-15
        相关资源
        最近更新 更多