onsubmit () не работает - PullRequest
       7

onsubmit () не работает

0 голосов
/ 26 марта 2010

Вот что-то, что я нахожу тревожным. Я создал небольшую форму и использую AJAX для проверки. У меня есть функция authenticate () JavaScript, которая работает иногда .

<form method="post" action="" id="login_form" onsubmit="authenticate()";>

// various inputs

<input type="button" onclick="authenticate()" value="Log In">

</form>

authenticate() прекрасно работает, когда я нажимаю кнопку. Однако, если я нажму, введите форму отправлено , и это не удастся. Это также терпит неудачу, если я вызываю onSubmit (). В своей отладке я предупреждаю исходящие тексты - они идентичны. Тем не менее, функция Prototype Ajax называет его onSuccess, но ответа от сервера просто нет. (Сервер выдает «Успех» или «Сбой»).

Почему различается поведение onClick () и onSubmit ()? Вызывается точно такая же функция, но результаты разные.

Буду признателен за любую помощь.

- Dave

1 Ответ

4 голосов
/ 26 марта 2010

Кнопка onClick не отправляет форму. Это просто кнопка, которая вызывает authenticate() на стороне клиента.

Ваше событие onSubmit будет вызвано при отправке формы, но вы можете не увидеть результат на стороне клиента authenticate(), потому что форма будет опубликована сразу после. Непонятно, для чего предназначен функционал.

Но, если authenticate() делает то, что я предполагаю, вам нужно изменить атрибут на onSubmit='return authenticate()' и позволить функции возвращать true / false. При значении false отправка формы будет прервана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...