Как подключить событие click к кнопке и предотвратить обратную передачу?jQuery предотвращение обратной передачи при нажатии кнопки
Код, который у меня есть, кажется, не работает.
$('#btnNext').click(function() {
return false;
});
Как подключить событие click к кнопке и предотвратить обратную передачу?jQuery предотвращение обратной передачи при нажатии кнопки
Код, который у меня есть, кажется, не работает.
$('#btnNext').click(function() {
return false;
});
$('#btnNext').click(function(e) {
e.preventDefault();
});
Я заметил, что это не работает из-за рендеринга asp.net. Моя кнопка получает визуализацию с помощью javascript: __ doPostBack («Любые идеи о том, как избавиться от этого?» –
Измените '$ ('# btnNext')' на это: '$ ('# <% = btnNext.ClientID% > ') '. По умолчанию ASP.Net использует свое собственное идентификационное имя ... поэтому, используя свойство ClientID, вы можете получить фактическое имя для ссылки. –
Добавление к User434917's answer: Encosia имеет хорошую запись на этом [здесь ] (http://encosia.com/button-click-handlers-ajax-premature-submission/) - (манипуляторы нажатия кнопок, AJAX и преждевременная подача) – amorin
Я работал с кнопкой и обнаружил, что если вы хотите, чтобы предотвратить кнопку делать авто-постбэк, необходимо указать тип, как «кнопка». Например:
<button id="saveButton">Save</button>
--this сгенерирует автоматический постбэк (протестировано в IE)
<button type="button" id="saveButton">Save</button>
--this не будет
Надежда это помогает кому-то.
Элегантный, простой и не требует никакого js. Это не только решило мою проблему, но и сделало так что это не раздувало мою кодовую базу. Спасибо! –
@JoeWerner проблема в том, что некоторые разработчики используют элементы управления ASP вместо необработанного HTML. Некоторые разработчики ленивы, я знаю. В любом случае это работает только для тех, кто использует Raw HTML для создания веб-страницы. – GoldBishop
внутри тег кнопки, используйте type = "Button", чтобы предотвратить пост.
в ASP.Net для предотвращения постбэков на кнопку использование нажмите preventDefault функции()
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>WebForm1</title>
<script src="js/jquery-2.2.2.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$("#btnshow").click(function (e) {
e.preventDefault();
$("#Label1").show();
});
$("#btnhide").click(function (e) {
e.preventDefault();
$("#Label1").hide();
})
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="btnshow" runat="server" Text="Show" />
<asp:Button ID="btnhide" runat="server" Text="Hide" />
</form>
</body>
</html>
Это, пожалуй, лучший практический подход, поскольку он относится непосредственно к .Net quandary. В некоторых сценариях вы также должны обрабатывать назначение идентификатора динамического управления в ожидании среды. – GoldBishop
Смотрите это: [Как удалить обработчик события] (http://jquery.open2space.com/node/23)И это: [лучший способ удалить обработчик событий в jquery?] (http://stackoverflow.com/questions/209029/best-way-to-remove-an-event-handler-in- jquery) –Хороший вопрос, но отсутствует сравнительный пример. Поскольку веб-разработчики сегодня используют смешанный подход, всегда полезно представить пример элемента управления HTML, а не просто тип селектора. – GoldBishop