У меня есть простой Html.BeginForm с некоторыми данными, и я хочу проверить какое-то условие, используя функцию onsubmit() javascript, когда пользователь нажал кнопку «отправить», прежде чем отправить форму. И когда это условие ложно, я хочу прекратить перезагрузку страницы, просто не отправляйте мою форму методу POST. Это работает отлично, немного я встретил проблему, потому что DOM элементы, которые я создаю в onsubmit() метод Dissapear:ASP.NET, когда форма onsubmit называется элементами DOM 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>
Так что, когда я хочу вернуться ложным, и не отправить форму, текст, который я добавьте в validation-div, в котором говорится, что это неправильно, - этого я не хочу достичь, потому что это очень маленький период времени, и пользователь не может этого даже заметить!
Спасибо большое! В любом случае, почему тип ввода должен быть здесь, а не отправлять? И могу ли я использовать onclick() вместо click(), и называть это в определении кнопки я имею в виду:
' type = "button" 'не будет отправлять форму. '$ (" # btnSubmit "). click' является способом jQuery привязки события в основном так же, как' onclick = "someFun()" ', но это предпочтительный метод, если вы используете jQuery. – Win