Кнопка Asp с PostBackUrl, проверенная обработчиком щелчка JavaScript, ломает другие кнопки - PullRequest
2 голосов
/ 01 декабря 2011

У меня есть главная страница, которая содержит кнопку с 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.

...