Реализация на jQuery
Для реализации поставленной задачи с помощью jQuery необходимо определить следующую разметку элементов управления:
<div id="loginPanel">
<form id="loginForm" method="post" action="Account/LogOn">
Логин: <input id="userName" type="text" />
Пароль: <input id="password" type="password" />
<input id="RememberMe" type="checkbox" />
запомнить <input type="submit" value="Логин" /><br/>
<span id="message"></span>
</form>
</div>
Здесь определена стандартная форма для отправки данных на сервер. Для обработки работы формы и формирования Ajax-запроса необходимо переопределить поведение формы с помощью JavaScript. Далее представлен фрагмент кода, определяющий логику работы формы:
<script type="text/javascript">
$('document').ready(function() {
$('#loginForm').submit(function(event) {
var postData = new Object();
postData.userName = $('#userName').val();
postData.password = $('#password').val();
postData.rememberMe = $('#RememberMe').is(':checked');
$.post('Account/LogOn',
postData,
function OnResult(result) {
if (result.IsSuccess) {
$('#loginPanel').hide();
$('#logoutPanel').show();
var username = $('#userName').val();
$('#username')
.html("<b>" + username + "</b>");
} else {
$('#message').text(result.ErrorString);
}
},
'json');
event.preventDefault();
})
});
</script>
Здесь определяется обработчик окончания загрузки документа, который после загрузки сайта в браузере у клиента выполнит необходимые привязки к разметке. Так, с помощью $('#loginForm').submit определяется функция, которая будет вызвана в момент, когда данные с формы будут передаваться на сервер. Обратите внимание на параметр event этой функции. После определения своей логики поведения при отправке данных с формы мы вызываем event.preventDefault(), который предотвращает поведение по умолчанию, т. е. позволяет нам отменить отправку данных с формы стандартным путем.
Для отправки данных мы используем функцию $.post, передав в нее предварительно сформированные данные, полученные с элементов управления. При вызове $.post мы определяем функцию OnResult, которая должна быть вызвана после завершения Ajax-запроса. Эта функция определяет обработку результата запроса и выводит либо сообщение об ошибке, либо приглашения для пользователя, в случае когда вход в систему был произведен удачно.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОК