Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/92: Рейтинг темы: голосов - 92, средняя оценка - 4.97
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107

Отправка формы javascript 'ом

14.10.2014, 16:39. Показов 18587. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть обыкновенная форма и кнопка, по клику на которую проверяются все введённые данные. Далее нужно, чтобы js её просто отправил. НЕ без перезагрузки, простая отправка.
JavaScript
1
document.getElementById('log_form').submit();
Просто перезагружает страницу.
JavaScript
1
$("#log_form").submit();
Тоже перезагружает....
Просто непонимаю, почему такая простая обыкновенная функция у меня почему-то не работает...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2014, 16:39
Ответы с готовыми решениями:

JavaScript отправка формы
function order(){ var name =document.getElementById('name').value; var time =...

Отправка формы на почту с JavaScript и AJAX
Уважаемые форумчане, подскажите, как отправить данные формы на почту с использованием только НАТИВНОГО JS и AJAX?

Повторная отправка (дублирование) формы (submit, POST) добавив обработчик на JavaScript
В основном все начинающие програмисты борются с проблемой повторной отправки формы. Ну скажем после нажатия клавиши: "F5". А меня...

22
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
14.10.2014, 18:05
HapKoT, submit аз есмь всего лишь функция, которая отправляет данные как обычная форма, будто мы нажимаем кнопку отправки формы. Используй POST/GET методы у JQ

Добавлено через 1 минуту
Документация/submit
0
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107
14.10.2014, 20:46  [ТС]
Thisman, так мне это и надо! Просто отправить форму, будто нажата кнопка. Но вместо этого страница просто перезагружается.
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
15.10.2014, 02:41
HapKoT, Покажи код. Весь код и формы тоже
0
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107
15.10.2014, 13:55  [ТС]
Хотя щас заметил, что какой-то пост запрос отправляется при таком сабмите js' ом, но отправляется не с данными из формы.
Вот весь код.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function login()
{
var log = $('#input_log').val()
var pass = $('#input_pass').val()
$("#result_log").empty();
$("#result_log").append('<img src="/loader.gif" width="20" height="20">');
    $.ajax({
        type: "POST",
        url: "ajax.php",
        data: { 'cf' : 'log', 'login' : log, 'pass' : pass },
        success: function(html) {
            $("#result_log").empty();
            $("#result_log").append(html);
            if (html == 'Вы успешно авторизированы') {
                $("#result_log").empty();
                document.getElementById('log_form').submit();
            }
        }
    });
return false;
}
PHP
1
2
3
4
5
6
7
8
9
10
<?
    if (isset($_POST['log_ok'])) {
    echo 'отправлен пост запрос';
echo '<br>';
        $login = $_POST['log'];
        $password = md5($_POST['password']);
        echo $login;
        echo '<br>';
        echo $password;
    }?>
HTML5
1
2
3
4
5
6
    <form method='post' action='' id="log_form">
    <div><span id='l_name'>Логин:</span><input type='text' id='input_log' name='log'></div>
    <div><span style='margin: 7px 0;' id='l_name'>Пароль:</span><input style='margin: 7px 0;' type='password' id='input_pass' name='password'></div>
    <div><input type='button' value='Войти' name='log_ok' onclick="login()"></div>
    <div id='result_log'></div>
    </form>
0
 Аватар для whiteapps
414 / 379 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
15.10.2014, 15:05
HapKoT,
в вашем случае сабмит произойдет только если в ответ на запрос к ajax.php, придет текст 'Вы успешно авторизированы'

Цитата Сообщение от HapKoT Посмотреть сообщение
if (html == 'Вы успешно авторизированы') { $("#result_log").empty(); document.getElementById('log_form').subm it(); }
если хотите чтобы сабмит происходил всегда, уберите это условие
0
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107
15.10.2014, 16:43  [ТС]
whiteapps, там всё правильно. Если от ajax.php придёт "Вы успешно авторизированы', то надо сабмитить эту форму. В этотм-то и проблема, что не сабмитится эта форма.
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
15.10.2014, 16:53
HapKoT, а что таки приходит?
0
 Аватар для whiteapps
414 / 379 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
15.10.2014, 17:16
HapKoT,
удалите все проверки и попробуйте так
JavaScript
1
2
3
4
5
....
      success: function(html) {
                document.getElementById('log_form').submit();
        }
....
если форма все равно не сабмитится, то проблема в ней

и попробуйте изменить
<input type='button' ... на <input type='submit' ...
0
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107
15.10.2014, 17:19  [ТС]
Цитата Сообщение от whiteapps Посмотреть сообщение
и попробуйте изменить
<input type='button' ... на <input type='submit' ...
Если изменить тип на сабмит, то по клику форма будет сразу отправляться, а не вызывать ф-ю Login().

Без проверок тоже самое...
0
 Аватар для whiteapps
414 / 379 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
15.10.2014, 18:19
HapKoT,

Цитата Сообщение от HapKoT Посмотреть сообщение
Если изменить тип на сабмит, то по клику форма будет сразу отправляться, а не вызывать ф-ю Login().
а вы знаете зачем вы поставили return false; в вашей функции?
0
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107
15.10.2014, 21:01  [ТС]
whiteapps, ну вроде да, return false должен запрещать отправку формы. Но.... Ну кнопка же не должна влиять на сабмин формы js' ом. Он же не по кнопке тыкает, а саму форму отправляет
0
 Аватар для whiteapps
414 / 379 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
15.10.2014, 22:13
HapKoT, может вы хотя бы попробуете?
0
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107
15.10.2014, 22:27  [ТС]
Насчёт кнопки баттон вмосто сабмит - пробовал. Вернее сначала поставил тип сабмит и удивлялся, почему же форма отправляется сразу при нажатии, а не выполняется ф-я login().
Сейчас даже попробовал 2 кнопки впихнуть. 1-баттон для вызова login(), а другую - сабмит. В итоге баттон выполняет функцию, как положено, но потом js форму не отправляет. А сабмит сразу форму отправляет, не выполняя js
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
16.10.2014, 09:42
HapKoT, попробуйте повесить функция login() на событие onsubmit, на саму форму. Тогда алгоритм будет такой:

Нажимаем на кнопку субмит формы, выполняется функция login(), срабатывает действие кнопки submit у формы по умолчанию:

HTML5
1
2
3
4
<form onsubmit="login()">
<!-- тут ваша форма -->
<input type="submit" value="Отправить на сервер'>
</form>
Добавлено через 1 минуту
ну и да, функция login(), не должна возвращать false, если вы хотите выполнение функции браузера по умолчанию после функции login()
0
 Аватар для whiteapps
414 / 379 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
16.10.2014, 11:17
HapKoT,

http://jsfiddle.net/28jw8qek/
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
16.10.2014, 11:26
whiteapps,

Не по теме:


/* в условия константа слева. просто приучите себя к этому. */
На чем основывается?
Смотрится довольно непривычно, ведь легче сравниться у себя с чем, чем что-то с собой:
Мое яблоко красное?(яблоко.цвет == красное), смотрится лучше чем
Красное ли мое яблоко( красный == яблоко.цвет )

0
 Аватар для whiteapps
414 / 379 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
16.10.2014, 12:15
Thisman,

Не по теме:

нотация Йоды

1
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107
16.10.2014, 12:24  [ТС]
Thisman, Так... Сделал всё как Вы сказали. Только немного подредактировал js. Так как мне нужно сабмитить форму только после ответа об успешной авторизации.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function login()
{
var log = $('#input_log').val()
var pass = $('#input_pass').val()
$("#result_log").empty();
$("#result_log").append('<img src="/loader.gif" width="20" height="20">');
    $.ajax({
        type: "POST",
        url: "/ajax.php",
        data: { 'cf' : 'log', 'login' : log, 'pass' : pass },
        success: function(html) {
            $("#result_log").empty();
            $("#result_log").append(html);
            if (html == 'Вы успешно авторизированы') {
                $("#result_log").empty();
                return true;
            }else{
            return false;
            }
        }
    });
}
Так как return true даст браузеру (по крайней мере я так думаю) выполнить стандартную функцию при этом. т.е. отправку формы. А return false запретит это сделать.
В итоге при клике по кнопке сабмит формы и вызов js функции происходит одновременно. В итоге js даже ответа от сервера не дожидается...
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
16.10.2014, 12:40
HapKoT, опробуй тогда вариант whiteapps,
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.10.2014, 12:40
Помогаю со студенческими работами здесь

Отправка Javascript'ом HTML странички??
Возможно ли отправить при помощи жабы текущую хтмл страничку, так чтоб она у принимающего отображалась с картинками+стилями+скриптами? ...

Отправка SMS с телефона на javascript
Думаю сделать небольшое приложение (отправка SMS) на java, которое будет подгружаться с сайта в браузер. На страничке будет пару полей...

Проверка формы не работает, если отправка формы была отменена
Здравствуйте, есть форма с 7ю радиокнопками и кнопкой submit, которая отправляет ее на сервер. Я написала простейший скрипт для валидации....

Обработка формы сайта на Go. Отправка данных формы на email
Здравствуйте, я новичок в Go. Как реализовать отправку данных на email. Есть сайт,но хочу прикрутить Go.

Отправка формы методом GET, используя атрибут action формы
Язык HTML. Задача состоит в том чтобы при выставленном методе отправки данных с формы &quot;post&quot; отправка осуществлялась методом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru