在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 datepicker 元素?