如何解决调用.click触发asp:Button的OnClick函数
|| 我想从Javascript函数中调用一些服务器端代码。 我有这个按钮:<asp:Button ID=\"quickAdd\" runat=\"server\" text = \"Quick add\" OnClick=\"QuickAdd\" />
如果单击它,将按预期方式调用C#函数QuickAdd
我在javascript函数中有以下命令:
document.getElementById(\"quickAdd\").click();
并且执行此功能不会执行任何操作。没错,我认为它只是单击按钮,但这不会导致触发QuickAdd C#函数触发所需的事件。
我该如何解决?
解决方法
代替
document.getElementById(\“ quickAdd \”)。click();
采用
document.getElementById(\'<%= quickAdd.ClientID%> \')。click();
其中quickAdd实际上是您的按钮变量的代号。这仅仅是因为您将无法引用该html项,因为在运行时ID将由于runat = \“ server \”而更改-因此,这只是部分答案
, 具体来说,您应该尝试
.onclick()
方法,但是此处提供了更彻底的处理方法:
是否可以通过JavaScript触发链接(或任何元素)的click事件?
, 你有两种方法。
您可以忘记QuickAdd服务器事件并进行ajax调用(请参见此处的操作)
您可以使用ASP.NET AJAX调用执行发布,只需将鼠标悬停在链接中,然后查看将要执行的javascript,然后复制并使用该方法即可(.click()
)
, .click()不是Javascript的本机(它是jQuery的)。因此,当您调用.click()时,不会发生任何事情,因为.click()没有具体说明。
如果要获取对象的onclick方法,请使用以下代码:
var func = document.getElementById(\"quickAdd\").onclick;
此时,func是#quickAdd元素的onclick函数。因此,此时,您可以调用:
func();
要么
document.getElementById(\"quickAdd\").onclick();
这些都将获取并执行您的onclick事件。
如果这样做没有帮助,请在Firefox中上拉您的页面,并使用Firebug控制台执行JavaScript(Firebug是可以安装的Firefox插件,它使您可以访问)。
, $(document).ready(function () {
$(\'#btnCancel\').click(function (e) {
e.preventDefault();
$(\"<div><span><b>Are you sure you want to cancel this order?</b></span></div>\").dialog({
modal: true,draggable: false,resizable: false,width: 430,height: 150,buttons: {
\"No\": function () {
$(this).dialog(\"destroy\");
},\"Yes\": function () {
$(\"#btnCancel\").unbind();
$(this).dialog(\"destroy\");
document.getElementById(\'<%= btnCancel.ClientID %>\').click();
}
}
});
});
});
然后在身体
<asp:button id=\"btnCancel\" runat=\"server\" cssclass=\"button_major\" text=\"Cancel\" style=\"float: right\"
onclick=\"btnCancel_ClickEvent\" clientidmode=\"Static\" />
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。