Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » JS: FormData перестал загружать input=submit

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте,
всё время пользовался таким скриптом:
 

Код:
 
<script>
function SendForm(forms) {
    var formData = new FormData(forms);
    alert("Вы нажали на кнопку:" + formData.get('submit'));
}
</script>
 
<form method="post" action="/login" onsubmit="SendForm(this);return false;">
<input type="text" name="login" value="" placeholder="Your login...">
<input type="submit" name="submit" value="Send">
</form>
 

 
Всегда показывало текст "Send" из кнопки. Но недавно обновился браузер (Opera 41) и теперь кнопку вообще не захватывает в formData.
Т.е. Все поля text, passworld есть а submit почему-то не хочет брать. Это типо баг?)
button - тоже не добавляет.
а если отправить без JS, так submit там будет....

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 16:01 28-10-2016 | Исправлено: Sutar, 16:06 28-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
теперь кнопку вообще не захватывает в formData

и не должно, в принципе. причина простая - у такого способа нет возможности определить какая кнопка и была ли она нажата, так как вы собираете данные из формы (ноды из DOM), а не перехватываете уже собранные данные перед отправкой.  
 
ps: почитайте, похожий пример для jQuery - http://stackoverflow.com/questions/9866459/ajax-post-serialize-does-not-include-button-name-and-value/9866762

Всего записей: 15111 | Зарегистр. 20-09-2014 | Отправлено: 20:27 28-10-2016 | Исправлено: Mavrikii, 20:27 28-10-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
так всё время работало так. Всегда кнопка тоже захватывалась....
у меня куча движков так написано... и после обновы - везде ошибки.... хотя с тл всё нормально работает.
 
ладно. а как тогда реализовать отправку формы? (с кнопкой)
 
Mavrikii

Цитата:
у такого способа нет возможности определить какая кнопка и была ли она нажата

в том и прикол, что был. Автоматически добавлялась кнопка на которую нажали.... даже если рядом стояли ещё 3 штуки....
 
Повторюсь, если убрать JS и добавить 2-3 кнопки. То после нажатия на одну из кнопок, будут переданы все text, pass, hidden и submit на которую нажали.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 22:48 28-10-2016 | Исправлено: Sutar, 22:52 28-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
в том и прикол, что был. Автоматически добавлялась кнопка на которую нажали.... даже если рядом стояли ещё 3 штуки

видимо не совсем следовали стандартам. в принципе собирает отправляемые данные и игнорирует ненужные поля.
 

Цитата:
а как тогда реализовать отправку формы? (с кнопкой)  

добавлять самостоятельно поле, если так уж хочется. можно просто невидимое.

Всего записей: 15111 | Зарегистр. 20-09-2014 | Отправлено: 22:54 28-10-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Вот пример отправки формы без JS (так-же работало и раньше):
 

Код:
array(2) { ["login"]=> string(0) "", ["submit"]=> string(10) "Войти" }

 
А если отправить сейчас с использованием JS:
 

Код:
array(1) { ["login"]=> string(0) "" }

 
Хотя с тл кнопка ещё присутствует.... Странно.
 

Цитата:
можно просто невидимое.  

я так и хотел.... или добавить в SendForm ещё один параметр (который говорит что делает данная форма), но не получилось, когда я понял, что отследить 2 кнопки или даже 3 так нельзя.... Так-же если я добавлю скрытие кнопки hidden так они будут передаваться все.... И сервер не поймет что происходит) как одновременно добавить и удалить....

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:01 28-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
А если отправить сейчас с использованием JS:  

я не вижу отправку с использованием js
 

Цитата:
так они будут передаваться все

выставляете поле hidden нужное значение перед отправкой.

Всего записей: 15111 | Зарегистр. 20-09-2014 | Отправлено: 23:03 28-10-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » JS: FormData перестал загружать input=submit


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru