jquery回发失败

时间:2012-02-15 18:39:09

标签: javascript jquery

我正在尝试启动一个回发来调用服务器运行元素的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

我真的需要一些帮助,有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您的代码中存在几个问题。

$("document")不会选择document而是会在页面上查找document标记元素。您应该使用$(document)删除引号。

同样getElementByIddocument对象的JavaScript方法,用于按ID查找元素。使用getElementById时,请勿在ID中指定#。 jQuyer使用#来区分各种选择器。

从锚点中删除内联onclick="return true;"并尝试此操作。

$("#anchorId").click(function(e){
    __doPostBack('<%=anchorId.UniqueID %>', '');
    return false;
});