我想从Javascript函数中调用一些服务器端代码。
我有这个按钮:
<asp:Button ID="quickAdd" runat="server" text = "Quick add" OnClick="QuickAdd" />
如果单击它,则按预期调用C#函数QuickAdd
我在javascript函数中有这个命令:
document.getElementById("quickAdd").click();
并且此函数的执行不执行任何操作。没有错误,我认为它只是单击按钮但这不会导致触发QuickAdd C#函数触发所需的事件。
我该如何解决这个问题?
答案 0 :(得分:1)
代替
的document.getElementById( “快速添加”)点击();
使用
document.getElementById('&lt;%= quickAdd.ClientID%&gt;')。click();
其中quickAdd实际上是按钮变量的代码名称。这只是因为你无法引用那个html项,因为在运行时ID会因runat =“server”而改变 - 所以这只是部分答案
答案 1 :(得分:0)
具体来说,您应该尝试.onclick()
方法,但是这里给出了更全面的处理方法:
Is it possible to trigger a link's (or any element's) click event through JavaScript?
答案 2 :(得分:0)
答案 3 :(得分:0)
.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插件,它可以让您访问它)。
答案 4 :(得分:0)
$(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" />