Ich habe einfach Html.BeginForm mit einigen Daten, und ich möchte überprüfen, einige Bedingungen mit onsubmit() Javascript-Funktion, wenn Benutzer auf "Senden" -Schaltfläche, bevor Formular gesendet wird. Und wenn diese Bedingung falsch ist, möchte ich aufhören, die Seite neu zu laden, einfach mein Formular nicht an die POST-Methode senden. Dies funktioniert gut, traf Bit ich ein Problem, weil DOM-Elemente, die ich in onsubmit create() Methode dissapear:ASP.NET wenn Formular onsubmit DOM Elemente genannt dissapear
@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form", **onsubmit=" return registerValidation()"**}))
{
@Html.AntiForgeryToken()
@Html.TextBoxFor(m => m.Email, new { @class = "form-control", @id = "emailVal"})
@Html.ValidationMessageFor(m => m.Email,"", new { @class = "validation-error-white", @id="emailValidation"})
<input type="submit" class="btn btn-warning btn-block add-item-button-text" value="Zarejestruj" />
}
<script type="text/javascript">
function registerValidation() {
var validForm = validateRegisterForm(email, login);
if (!validForm) {
$('#emailValidation').append('Those email already exists! Take another one');
return false;
}
return true;
}
</script>
Also, wenn ich falsch zurückgeben möchten, und senden Sie keine Form, Text, den ich an validation-div anhängen, das sagt, was falsch ist, verschwindet - das ist nicht das, was ich erreichen möchte, weil es sehr kurze Zeit ist und der Benutzer das nicht einmal bemerken kann!
Dank! Wie auch immer, warum Eingabe-Typ muss hier eine Schaltfläche sein, nicht einreichen? Und kann ich onclick() anstelle von click() verwenden, und das in Button-Definition meine ich wie:
' type = "button" 'sendet das Formular nicht. '$ (" # btnSubmit "). click' ist jQuery-Methode zum Anhängen eines Ereignisses im Grunde genommen wie 'onclick =" someFun() "', aber es ist eine bevorzugte Methode, wenn Sie jQuery verwenden. – Win