Всем привет.
У меня есть сервер, который возвращает ответ в формате JSON в случае неудачной авторизации/регистрации пользователя или производит редирект, для это я нашел уже готовый скрипт (работает для одной формы):
$(function () {
$('#login').unbind('submit');
$('#login')
.attr('action', '/members/login')
.bind('submit', function () {
var form = this;
if ($("#login").valid()) {
$.post($(form).attr('action'), $(form).serialize(), function (data) {
if (data.errors) {
makePopup(data.errors, 'error', 'Ошибка входа');
} else {
document.location = data.redirect;
}
});
}
return false;
});
});
И он правда работает, вот только решил я его немного изменить, для того чтобы он работал сразу с несколькими формами:
authorization.js
function verifyForm(id, url) {
$(id).unbind('submit');
$(id)
.attr('action', url)
.bind('submit', function () {
var form = this;
if ($(id).valid()) {
$.post($(form).attr('action'), $(form).serialize(), function (data) {
if (data.error) {
alert(data.error);
} else {
document.location = data.redirect;
}
});
}
return false;
});
}
Затем подключаю в <head></head>
<script type="text/javascript" src="/scripts/jquery-1.9.1.js"></script>
<script type="text/javascript" src="/scripts/jquery.validate.js"</script>
<script type="text/javascript" src="/scripts/bootstrap.min.js"></script>
<script type="text/javascript" src="/scripts/authorization.js"></script>
<!-- Вызываем методы в скрипте-->
<script type="text/javascript">verifyForm('#login', '/member/login');</script>
<script type="text/javascript">verifyForm('#reg', '/member/register');</script>
Ну и соответственно две формы:
<form action="/" class="form-inline" id="login" method="post">
...
<form action="/" class="form-horizontal" id="reg" method="post">
А теперь собственно сама проблема, после небольшого рефакторинга скрипт не хочет работать
в консоли отладки Firefox особо ничего нет, кроме "элемент не найден" (но вот что за элемент остается тайной). Интересно почему? Честно говоря JS только начал изучать