У меня есть главная страница, которая содержит кнопку с PostBackUrl. Я добавляю проверку кнопке с помощью jquery и возвращаю false, если форма недействительна.
Кнопка:
<asp:Button ID="btnSearch" runat="server" Text="Search" CssClass="search-button"
PostBackUrl="/some/rewriten/url" />
JavaScript:
<script type="text/javascript">
$(function () {
$(".search-button").click(function (e) {
if (!ValidateForm()) {
return false;
//e.preventDefault();
}
});
});
</script>
У меня также есть другая страница с формой, где пользователи могут оставлять контактную информацию. Эта форма имеет нормальную кнопку:
<asp:Button ID="btnSend" runat="server" Text="Send"
CssClass="button" OnClick="btnSend_Click" />
Если я использую первую кнопку и форма недействительна, сообщения об ошибках выводятся на печать, и пользователь не перенаправляется на страницу PostBackUrl. После этого, если я нажму кнопку btnSend другой формы, пользователь будет перенаправлен на страницу PostBackUrl, как если бы URL-адрес обратной записи был установлен и сохранен ранее.
Есть идеи, почему это происходит, и как решить эту проблему?
Я где-то читал, что выполнение этого OnClientClick="if(!ValidateForm())? return false;"
, вероятно, решит проблему, но добавление OnClientClick недопустимо в моем сценарии, обработчик кликов для проверки должен быть добавлен javascript.