Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как записать результат onsubmit в переменную? (https://javascript.ru/forum/misc/83897-kak-zapisat-rezultat-onsubmit-v-peremennuyu.html)

kpripper 15.04.2022 18:41

Как записать результат onsubmit в переменную?
 
Привет, есть такая конструкция

<form name="my">
  <input name="one" value="">
  <input name="two" value="">
  <input type = "submit" value = "Submit" />
</form>


document.forms.my.onsubmit = function() {
  var message1 = this.one.value;
  var message2 = this.two.value;
  return false;
};


Как записать в переменные value элементов one и two, чтобы они были доступны вне функции?
Или вообще не используя эту функцию присвоить value переменным.

рони 15.04.2022 19:16

Цитата:

Сообщение от kpripper
чтобы они были доступны вне функции?

объявить переменные вне функции

kpripper 15.04.2022 19:17

Отлично. Но каким им присвоить значения value?

ksa 15.04.2022 19:17

kpripper, тут кагбэ нужно знать "в какое время" делать все эти присвоения?

kpripper 15.04.2022 19:27

После onsubmit

ksa 15.04.2022 19:32

Цитата:

Сообщение от kpripper
После onsubmit

Тогда это нужно делать в onsubmit, как выше описал рони...

kpripper 15.04.2022 19:35

Я пробовал так:

var message1 = document.forms.my.onsubmit.one.value


Не работает

рони 15.04.2022 20:08

kpripper,
:-?
var message1, message2;
document.forms.my.onsubmit = function() {
  message1 = this.one.value;
  message2 = this.two.value;
  return false;
};

ksa 15.04.2022 20:09

Цитата:

Сообщение от kpripper
Не работает

Тут кагбэ встречный вопрос - а почему это белиберда должна работать? :blink:

Давай зайдем с другого конца...
Для чего тебе те данные?
Что ты с ними собрался делать?

так же нужно понимать что на странице все определяется некий промежутком времени.
Форма появилась... В поля вносятся какие-то данные... Потом давят на некую кнопку...
Ты можешь перехватить нажатие на кнопку и сделать какие-то действия.
Но тебе это почему-то не нужно. Хотя тебе нужны значения тех переменных именно в момент нажатия на кнопку.
Почему не использовать это событие и выполнить что-то нужное?

рони 15.04.2022 20:10

Цитата:

Сообщение от ksa
Почему не использовать это событие и выполнить что-то нужное?

:yes: :yes: :yes:

kpripper 15.04.2022 20:28

Я это понимаю, но с написанием плохо.

kpripper 15.04.2022 20:31

Цитата:

Сообщение от рони (Сообщение 544718)
kpripper,
:-?
var message1, message2;
document.forms.my.onsubmit = function() {
  message1 = this.one.value;
  message2 = this.two.value;
  return false;
};

Так ведь данные value в message1, message2 глобально не сохраняются, в консоль выводится undefined

рони 15.04.2022 20:42

kpripper,
сложно понять вашу логику. вероятно вам нужно, что-то другое, а не то что вы пишите.

kpripper 15.04.2022 21:35

https://jsfiddle.net/9ghnumdL/

Undefined выводится в консоли вместо введенных данных

рони 15.04.2022 21:51

kpripper,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 15.04.2022 21:53

kpripper,
почему переменные должны что-то содержать, если событие по которому они инициализируются ещё не произошло?

рони 15.04.2022 21:56

kpripper,
var message1, message2;
document.forms.my.onsubmit = function() {
  message1 = this.one.value;
  message2 = this.two.value;
  console.log(message1+message2);
  return false;
};

kpripper 17.04.2022 19:33

Цитата:

Сообщение от рони (Сообщение 544727)
kpripper,
var message1, message2;
document.forms.my.onsubmit = function() {
  message1 = this.one.value;
  message2 = this.two.value;
  console.log(message1+message2);
  return false;
};

Но это не сохраняет данные для дальнейшей работы, только выводит в консоль.

рони 17.04.2022 19:59

Цитата:

Сообщение от kpripper
Но это не сохраняет данные для дальнейшей работы,

чем докажешь?

kpripper 18.04.2022 16:45

Коварный вопрос))) Простой запуск кода в песочнице не запускает onsubmit, а onsubmit запускает только на функцию к нему привязанную.

рони 18.04.2022 16:53

kpripper,
что вам мешает использовать значения? пишите код.


Часовой пояс GMT +3, время: 20:03.