0

我有一个按钮

<asp:Button ID="submitRegionsButton" runat="server" Text="OK" OnClick="OnSubmitRegion" />

当我单击它时,一切都按预期工作,但是当我有一个使用 btn.click() 调用它的 javascript 函数时,不会执行单击命令。该按钮已正确找到,但随后无法正常工作或在我的代码中运行 OnClick 函数

有任何想法吗?它可以在 IE 中运行,但尚未测试 firefox

好的,在firefox中测试过,在那里不起作用。一切正常,直到实际调用 .click(),不知道为什么:/

调用点击的代码:

    function dropDownProductBlur() {
        if (isItemClicked) {
            var combo = $find("<%= productDropDown.ClientID %>");
            var btnSubmitProd = $get(combo.get_id() + "_Footer" + "_submitProductsButton");
            if (btnSubmitProd)
                btnSubmitProd.click();
        }
    }

只是为了理解,按钮包含在下拉列表中,当下拉列表关闭时,它“单击”按钮(或者,应该......)手动单击按钮,并且 find 工作并正确找到按钮.

4

1 回答 1

1

我最近自己遇到了这个问题。我认为问题在于,在 javascript 中,此 .click() 要么被视为组件的 onClientClick 事件,要么完全被视为其他事件。不确定这一点。

在任何情况下,我的解决方案:不要调用 btnSubmitProd.click(),而是执行__doPostBack('Foo', 'Bar');其中 Foo 是任意名称(通常是组件,因此是“submitRegionButton”)和 Bar 是该名称的任意值,通常是事件(所以“单击") (另外,那里有两个下划线,而不是一个)。然后,在您的代码隐藏中:

try {
  if (Request["__EVENTTARGET".ToString() == "Foo" && Request["__EVENTARGUMENT"].ToString() == "Bar" {
    //call the codebehind directly here
    OnSubmitRegion(null null);
  }
}

我假设您的代码隐藏函数的形式为protected void OnSubmitRegion(object sender, EventArgs e). 如果您需要这些变量中的任何一个的值,事情会变得有点复杂。如果没有,请尝试上述方法。

于 2013-06-12T13:47:53.707 回答