Я работаю над старым приложением 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
:
![javascript code](https://i.stack.imgur.com/BrpbB.png)
Однако обратная передача никогда не происходит, и обработчик событий Budget_Approve_Click
никогда не срабатывает.Почему бы нет?
Редактировать: Я попытался удалить строку, которая полностью добавляет встроенный код 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.Существуют ли какие-либо специфические для браузера настройки или проблемы, которые могут вызвать эту проблему?