Button的.click()命令在Chrome中不起作用

时间:2013-06-12 13:21:37

标签: asp.net button onclick click

我有一个按钮

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

当我点击它时,一切都按预期工作,但是当我有一个javascript函数使用btn.click()调用它时,不会执行click命令。该按钮被正确找到,但随后无法工作或在我的代码中运行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();
        }
    }

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

1 个答案:

答案 0 :(得分:1)

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

无论如何,我的解决方案: 执行__doPostBack('Foo', 'Bar');而不是调用btnSubmitProd.click(),其中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)。如果您需要任何这些变量的值,事情会变得复杂一些。如果没有,请尝试上面的尝试。