我有一个按钮
<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();
}
}
只是为了理解,按钮包含在下拉列表中,当下拉菜单关闭时,它“点击”按钮(或者,好吧,应该......)点击按钮手动工作,并且查找工作和查找按钮正确。
答案 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)
。如果您需要任何这些变量的值,事情会变得复杂一些。如果没有,请尝试上面的尝试。