Здравствуйте!
В попытках сделать обработку формы перед отправкой на сервер столкнулся с проблемой, которую ну никак не могу понять.
Вернее будет сказать, что проблем несколько.
Итак, есть вот такая форма:
<form name='Registration' method="post" onsubmit="return check(this)">
//Здесь идут элементы формы (на всякий случай упомяну, что они собраны в несколько таблиц)
</form>
Как видно onsubmit ссылается на функцию check.
Первая проблема заключается в том, что, если функция прописана во внешнем файле, то где бы и как бы на странице я не ссылался на этот файл ничего не работает.
Вторая проблема интереснее. Если я внутри страницы с формой под тегом <script> пишу вот такую функцию:
function check(form) {
var name = form.login.value;
alert(name);
}
То все замечательно работает (login - одно из имен для input в форме). Я нажимаю кнопку подтверждения, получаю alert с введенным текстом и страница автоматически перезагружается.
НО, если я точно так же прописываю вот такую функцию:
function check(form) {
alert('Начали!');
var login = form.login.value;
var pass = form.password.value;
var semipass = form.semiPassword.value;
var mail = form.mail.value;
......
var err = "";
if (login.length < 4) err += "Слишком короткий логин \n";
if (pass.length < 4) err += "Слишком короткий пароль \n";
if (pass != semipass) err += "Пароли не совпадают \n";
if ((mail.indexOf("@") < 0) || (mail.length < 2)) err += "Введен некорректный e-mail \n";
......
if (err != "") return false;
else return true;
}
То при прочих равных функция не срабатывает. Я даже не получаю самого первого alert'а "Начали!", который специально для того и вводил, чтобы проверить срабатывание функции.
Что скажете? В чем проблема и что я не так делаю?