Я работаю над старым приложением ASP.NET WebForms, которое имеет страницу .aspx со следующим элементом управления:
<asp:Button ID="Budget_Approve" OnClick="Budget_Approve_Click" runat="server"
Visible="True" Width="100" Height="30" Text="Approve"></asp:Button>
Обработчик событий Budget_Approve_Click
никогда не запускается , и я пытаюсь определить, почему. Я заметил, что при загрузке страницы этот код запускается для добавления некоторых встроенных js в атрибут onclick
:
Budget_Approve.Attributes.Add("onclick", "return confirm_approve();");
HTML-код, который отображается:
<input type="submit" name="ctl00$mainContent$Budget_Approve" value="Approve"
onclick="return confirm_approve();WebForm_DoPostBackWithOptions(new
WebForm_PostBackOptions("ctl00$mainContent$Budget_Approve",
"", true, "", "", false, false))"
id="ctl00_mainContent_Budget_Approve" style="height:30px;width:100px;">
Поэтому, когда я нажимаю, я ожидаю confirm_approve ()
для выполнения. Если он возвращает true
, я ожидаю обратной передачи и срабатывания моего обработчика событий.Отлаживая в Chrome, я обнаружил, что confirm_approve ()
действительно возвращает true
:
Однако обратная передача никогда не происходит, и обработчик событий Budget_Approve_Click
никогда не получает ударять. Почему бы и нет?
Edit: Я попытался удалить строку, которая полностью добавляет встроенный код javascript. Однако обратной передачи все равно нет. Для кнопки отображается следующий HTML-код:
<input type="submit" name="ctl00$mainContent$Budget_Approve"
value="Approve"
onclick="javascript:WebForm_DoPostBackWithOptions(new
WebForm_PostBackOptions("ctl00$mainContent$Budget_Approve",
"", true, "", "", false, false))"
id="ctl00_mainContent_Budget_Approve" style="height:30px;width:100px;" />
Обновление: Обнаружено, что обратная передача действительно работает в IE, но все еще не работает в Chrome. Существуют ли какие-либо специфичные для браузера настройки или проблемы, которые потенциально могут вызвать эту проблему?