我正在尝试启动一个回发来调用服务器运行元素的click函数,以便在特定的jquery对话框按钮单击时运行一些C#代码。
我按照this jQuery UI示例使用带按钮的模态对话框。我试图在this问题中使用javascript / jquery回发调用的所有不同答案。
我在我的C#代码中设置了几个断点,看看这些回发是否被调用,但没有任何东西被击中。
我在ascx文件中使用了这个虚拟元素:
<a id="anchorId" runat="server" onclick="return true;" onserverclick="TryLogin"></a>
我试图通过几种不同的方式获得此回发:
$("#anchorId").click(); //just simply does nothing
document.getElementById("anchorId").click(); //This one gives me a null javascript error
$("document").getElementById("#anchorId").click(); //tells me [object] doesn't have a getElementById
__doPostBack('<%=anchorId.UniqueID %>', '');//Also does nothing in the jQuery code, but works in standard javascript code
最后,我尝试在后面的代码中检索唯一ID:
string id = anchorId.UniqueID;
并以这种方式替换为javascript:
__doPostBack('Softening_Main$anchorId', '');//Still does nothing, and no javascript error
我真的需要一些帮助,有什么想法吗?
答案 0 :(得分:3)
您的代码中存在几个问题。
$("document")
不会选择document
而是会在页面上查找document
标记元素。您应该使用$(document)
删除引号。
同样getElementById
是document
对象的JavaScript方法,用于按ID查找元素。使用getElementById
时,请勿在ID中指定#
。 jQuyer使用#
来区分各种选择器。
从锚点中删除内联onclick="return true;"
并尝试此操作。
$("#anchorId").click(function(e){
__doPostBack('<%=anchorId.UniqueID %>', '');
return false;
});