在jquery中触发按钮单击的所有可能方法

Posted

技术标签:

【中文标题】在jquery中触发按钮单击的所有可能方法【英文标题】:All possible ways to trigger a button click in jquery 【发布时间】:2013-02-20 22:57:51 【问题描述】:

我想知道在 jQuery 中触发按钮的所有可能方法,我试过了,但它不起作用,

$("#<%=btA.ClientID%>").trigger('click');

注意:它是一个 ASP.Net 按钮,我想要的是触发按钮点击,以便触发 buttonA 的代码隐藏点击方法。

【问题讨论】:

【参考方案1】:

我总是让 ClientIdMode="static" 以便您可以轻松地调用具有您在页面中配置的相同 id 的元素..

所以你不必使用 ClientID.. 而且你不能在单独的 js 文件中使用 asp.net 代码。

$("#").trigger('click');

$("#btA").click();

【讨论】:

【参考方案2】:

它打败了我,因为它应该是一件非常简单的事情。实际上,我只是尝试了一下,它可以顺利运行。这是我的标记:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () 
        $("#<%=btA.ClientID%>").trigger('click');
    );
</script>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lbA" runat="server"></asp:Label>
        <asp:Button ID="btA" runat="server" OnClick="btA_Click" Text="Click Me!" />
    </div>
    </form>
</body>
</html>

...我的代码中有这个方法:

protected void btA_Click(object sender, EventArgs e)

    lbA.Text = "Hello World!";

当应用程序运行时,它会触发btA 按钮的click 事件,并立即触发标签上的Hello World! 文本。检查您是否可能遗漏了什么。

【讨论】:

【参考方案3】:

当控件本身未加载到页面上时,您可能正在尝试连接事件。

试试这个。它会花一点时间,然后连接事件。

setTimeout(function () 
    $("#<%=btA.ClientID%>").trigger('click');
, 10);

【讨论】:

抱歉,我的代码行在“$(document).ready(function()”中,所以我认为这不是问题 对,但是我遇到了类似的问题,当触发器即使在 document.ready() 中也不起作用时。 setTimeout 为我解决了这个问题。【参考方案4】:
$("#<%=btA.ClientID%>").click();

Or

$("input[id$='yourbuttonId'").click();

触发器不起作用的原因是 Jquery 只允许您触发 Jquery 创建的点击。编写点击监听器后使用触发路由。

【讨论】:

【参考方案5】:

试试这个

$("#<%=btA.ClientID%>").click();

如果它不起作用,请尝试提醒这一点并检查它是否被 JQ 访问

alert($("#<%=btA.ClientID%>").length);

您是否通过以下方式向 jquery 注册了事件

$(function()
   $("#<%=btA.ClientID%>").click(function()
   // your logic here
);
);

还有一件事要确认,您是直接在页面加载时加载此按钮,还是有一些页面更新面板在之后加载它?

如果是,那么您应该按照以下方式将事件绑定到按钮

$(document).on('click',"#<%=btA.ClientID%>", function() ...);

【讨论】:

是的,长度返回带有“1”的警报框 你可能需要触发一个 DOM 事件......在这种情况下试试这个...... ("#")[0].click( ); ...希望这会奏效.... 如果你仍然无法让它工作,那么你可能不得不尝试这个...... Fire DOM Events【参考方案6】:
$("#<%=btA.ClientID%>").click();

我相信这是唯一的方法。

【讨论】:

以上是关于在jquery中触发按钮单击的所有可能方法的主要内容,如果未能解决你的问题,请参考以下文章

除了单击按钮之外,如何在 jQuery 中触发模糊?

是否可以在输入单击和按钮上触发 jQuery datepicker 元素?

asp.net 按钮单击未通过 jquery 在隐藏字段中触发大量数据

JQuery getJson 成功函数在按钮单击时触发

除了单击按钮之外,如何在jQuery中触发模糊?

Jquery按钮单击事件未触发