У меня событие Onclientclick, прикрепленное к кнопке в серверном коде, как показано ниже,
TopPanelButton.OnClientClick = string.Format("if(!ValidData({0},{1},{2},{3})) return false;", txtOD.ClientID, radCmbOD.ClientID, txtgetMe.ClientID, RadAjaxLoadingPanel1.ClientID);
Также для той же кнопки на странице aspx прикреплено событие onClick,
<asp:Button ID="TopPanelButton" runat="server" Text="Go"
CssClass="CBtn1" Width="30px" Height="21px" OnClick="TopPanelButton_Click" />
Событие щелчка на сервере должно срабатывать, если 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);
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;
}