views:

187

answers:

1

Hi, i have a form on a particular ASPX page that has custom js validation. Also on this form is a navigation menu in the header.

The navigation menu items are built programatically and are initiated by __doPostBack calls which obviously submits the form.

The problem i am having is that the form itself has code something like the following

onsubmit='return validateForm()'

and if the form has not been filled out then the form cant submit. This in itself is not a problem unless a user goes to the form but decides to navigate away.

When this happens the validateForm function fails.

Does anyone have a workaround for this issue?

NB: On my nav links i have already set CausesValidation="False"

This is the markup:

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

This is the handler:

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

This is the validation function:

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

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

    return validated;
}

And this is how its called:

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

Are your navigation links proper asp.net server controls? If they are setting CausesValidation="False" should prevent them from causing validation. Can you post the code where you are dynamically adding them to the page, the most liekly explanation is the the CausesValidation property is not being set corectly.

Ben Robinson
Hi Ben, i have updated my question to show the code used.
Grant