Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обработка отправки с параметрами ошибка UNDEFINED (https://javascript.ru/forum/events/78863-obrabotka-otpravki-s-parametrami-oshibka-undefined.html)

jay-S 14.11.2019 19:54

Обработка отправки с параметрами ошибка UNDEFINED
 
Всем привет!

Ошибка следующая вечно выскакивает undefined

<form id="target" action="#">
  <input type="text" value="value">
  <input type="submit" value="Go">
</form>


$('#target').parsley();
$("#target").on( "submit", function( event, param1, param2 ) {
event.preventDefault();
alert(param1);
alert(param2);
});

$('#target').trigger( "submit", [ "1", "2" ] );


я пользуюсь вот такой библиотекой parsleyjs.org
мне нужна она и вот что я проверил, что если в коде убрать $('#target').parsley(); то все работает и параметры определены
но мне нужна эта библиотека в чем может быть ошибка подскажите пожалуйста я очень много пробовал и вот максимум что нашел это то что из-за parsley выводится постоянно при отправке undefined параметры

jay-S 15.11.2019 09:38

Покопавшись вот что я выяснил:
Parsley Events List (https://parsleyjs.org/doc/index.html#events)

оказывается у него есть вот такое событие form:submit (Fired by submit())

и получается нужно вот так написать


$('#target').parsley().on('form:submit', function() {
//КАК МНЕ ПЕРЕДАТЬ СЮДА ПАРАМЕТРЫ?
return false;//прервать стандартную обработку
});


$('#target').trigger( "submit", [ "1", "2" ] );

рони 15.11.2019 10:52

jay-S,
var el = $('#target').parsley().on('form:submit', function(event) {
 alert(event);
return false;//прервать стандартную обработку
});
el.trigger( "form:submit", [ "1", "2" ] );

jay-S 15.11.2019 11:06

Цитата:

Сообщение от рони (Сообщение 515554)
jay-S,
var el = $('#target').parsley().on('form:submit', function(event) {
 alert(event);
return false;//прервать стандартную обработку
});
el.trigger( "form:submit", [ "1", "2" ] );

Проверил параметры получены, НО вариант плохой потому что:

-Если нативно отправлять submit из формы например ты ее заполнил и нажал интер - тогда не сработает.

-Во-вторвых что если обработчик $('#target').parsley() записан так что не входит в глобальный var, а форм много и что тогда плодить глобальные переменные считаю не очень хорошо

Может есть способ нативно красиво чтобы работало

Вот как здесь
$('#target').on('submit', function(e, param1, param2) {
e.preventDefault();
console.log(param1);
console.log(param2);
});

$('#target').trigger('submit', ['1', '2']);

Только через PARSLEY он хорош тем что это гибкий инструмент для работы с валидацией форм

jay-S 15.11.2019 11:08

Надеюсь что здесь есть продвинутые юзеры которые смогут решить эту задачу. :)


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