rab*_*eek 5 c# asp.net firefox code-behind onclientclick
我有Onclientclick事件附加到服务器端代码中的按钮,如下所示,
TopPanelButton.OnClientClick = string.Format("if(!ValidData({0},{1},{2},{3})) return false;", txtOD.ClientID, radCmbOD.ClientID, txtgetMe.ClientID, RadAjaxLoadingPanel1.ClientID);
Run Code Online (Sandbox Code Playgroud)
此外,onClick事件附加到aspx页面中的相同按钮,
<asp:Button ID="TopPanelButton" runat="server" Text="Go"
CssClass="CBtn1" Width="30px" Height="21px" OnClick="TopPanelButton_Click" />
Run Code Online (Sandbox Code Playgroud)
如果onclientclick返回true,则应触发服务器端点击事件.调用"ValidateData()"函数来验证表单中的条目.
此代码在IE中正常工作.但在Firefox中,这两个事件并不充实.如果我评论"TopPanelButton.OnClientClick = ..."代码,则onClick事件将被触发.
我在哪里可以在下面的代码中应用此代码Page.ClientScript.GetPostBackEventReference().
TopPanelButton.OnClientClick = string.Format("if(!ValidData({0},{1},{2},{3})) return false;", txtOD.ClientID, radCmbOD.ClientID, txtgetMe.ClientID, RadAjaxLoadingPanel1.ClientID);
Run Code Online (Sandbox Code Playgroud)
Firefox没有调用ValidData函数.我在javascript中设置了警报,但Firefox中没有显示警告消息.但IE显示警报消息.
我的validData函数:
function ValidData(txtOND, ddlOND, txtgetMe, aPanel) {
alert("Entered");
if (!ValidNumber(txtgetMe)) {
aPanel.hide();
return false;
}
if (ddlOND.value == "Origin" || ddlOND.value == "Destination") {
if (!ValidOriginOrDestination(txtOND, ddlOND.value)) {
aPanel.hide();
return false;
}
}
else if (ddlOND.value == "O&D") {
if (!ValidOND(txtOND)) {
aPanel.hide();
return false;
}
}
if (ddlOND.value == "Region Starting with" || ddlOND.value == "Country Starting with" || ddlOND.value == "Budget Station Starting with") {
if (txtOND.value.length == 0) {
radalert("Enter a value for " + ddlOND.value);
aPanel.hide();
return;
}
}
aPanel.show();
return true;
}
Run Code Online (Sandbox Code Playgroud)
FireFox 不处理 OnClientClick 和 OnClick 事件(尽管 Internet Explorer 处理得很好)。为了解决这个问题,可以使用一种方法Page.ClientScript.GetPostBackEventReference()
来生成客户端 Javascript 以进行控件的回发。
因此,以下代码将隐藏页面上除加载图形之外的所有内容,并调用 btnSubmit 回发方法。它返回 false 的原因是,否则 Internet Explorer 将调用服务器端 OnClick 方法两次。
btnSubmit.OnClientClick = String.Format("ElementStyle(document.getElementById('wrapper'),'display','none'); {0}; return false;", Page.ClientScript.GetPostBackEventReference(btnSubmit, ""));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9500 次 |
最近记录: |