Как обойти проверку формы отправки на странице ASPX - PullRequest
0 голосов
/ 11 мая 2010

У меня есть форма на определенной странице ASPX, которая имеет пользовательскую проверку JS. Также в этой форме находится меню навигации в шапке.

Элементы меню навигации построены программно и инициируются вызовами __doPostBack, которые явно отправляют форму.

Проблема, с которой я столкнулся, состоит в том, что в самой форме есть код, подобный следующему

onsubmit='return validateForm()'

и если форма не была заполнена, то форма не может быть отправлена. Само по себе это не проблема, если пользователь не перейдет в форму, но решит уйти.

Когда это происходит, функция validateForm завершается ошибкой.

У кого-нибудь есть решение этой проблемы?

NB. В моих навигационных ссылках я уже установил CausesValidation = "False"

Это разметка:

<div id="divNavigate" class="absolute_topleft">
    <asp:LinkButton ID="linkGoHome" runat="server" OnClick="linkGoHome_Click" CausesValidation="false" CssClass="xxx">text.</asp:LinkButton>
</div>

Это обработчик:

protected void linkGoHome_Click(object sender, EventArgs e)
{
    Response.Redirect("xxxxx");
}

Это функция проверки:

function validateTextField(field) {
    var fieldElement = document.getElementById(field);    
    var validated = false;

    if (fieldElement.value.length > 0) {
        validated = true;
    }            

    return validated;
}

А вот как это называется:

<form id="formLogin" runat="server" onsubmit="return validateTextField(field1)">

1 Ответ

0 голосов
/ 11 мая 2010

Правильно ли используются ваши навигационные ссылки для управления сервером asp.net? Если они устанавливают CausesValidation = "False", они не должны вызывать проверку. Можете ли вы разместить код, в котором вы динамически добавляете их на страницу, самое простое объяснение состоит в том, что свойство CausesValidation задано не полностью.

...