У меня есть проект WebForms с настраиваемым UserControl, который создает модальное окно. В этом модальном окне есть основная и дополнительная кнопки действий, разметку которых я не могу объявить или настроить. Он динамически генерируется атрибутами UserControl. Что мне нужно сделать, так это убедиться, что событие клика клиента для этих кнопок не всплывает. Я пробовал следующие подходы, но безрезультатно.
Попытка 1: прикрепить атрибут onclick
к элементу.
$('<%= string.Format("#{0} a.btn", mdlNewPerson.ClientID) %>').each(function (index, value) {
$(this).attr("onclick", "event.stopPropagation();");
});
Попытка 2: Настроить $.on('click');
обработчик событий.
$('<%= string.Format("#{0} a.btn", mdlNewPerson.ClientID) %>').on('click', function (event) {
event.stopPropagation();
});
Я знаю, что элементы можно найти, потому что, когда я запускаю следующее в консоли браузера, он сообщает правильные:
$('#ctl05_ctl02_mdlNewPerson a.btn').length
// returns 2
Это html, который UserControls создает для эти кнопки:
<div class="modal-footer">
<a class="btn btn-primary" href="javascript:__doPostBack('ctl05$ctl02$mdlNewPerson$ctl10','')">Save</a>
<a class="btn btn-default" href="javascript:__doPostBack('ctl05$ctl02$mdlNewPerson$ctl11','')">Cancel</a>
</div>
Учитывая, что я не могу управлять кодом кнопки на стороне сервера, мне не повезло? Я не знаю, почему ни один из вышеперечисленных методов не работает. События щелчка по-прежнему всплывают, вызывая создание повторяющихся записей. Мне нужен только один, чтобы меня приняли.