Как вызвать две функции при отправке формы?

0

У меня есть форма, когда форма отправлена. Я назову одну функцию javascript и обработаю ее, чтобы сформировать обработчик.

<form action="subscribe.php" onsubmit="return form_check(this)" method="post">
<input type="text" value="">
<input type="submit" value="click">
</form>

Все работает нормально, теперь я хочу отправить те же поля формы в другую функцию javascript, чтобы я попытался как это сделать на отправке кода

    <form action="subscribe.php" 
onsubmit="return (form_check(this) & another_script(this))" method="post">

Добавлено & in onsubmit, но функция не запускается при нажатии кнопки. Я думаю, что это связано с action="subscribe.php" в форме.

Я хочу также отправить значение формы в другую функцию javascript. как я могу это достичь?

  • 0
    Разделите их точкой с запятой, а не амперсандом. Я не уверен, как это будет работать, если обе функции возвращают что-то другое.
  • 0
    Какое значение функции вы хотите вернуть? form_check или another_script ?
Показать ещё 6 комментариев
Теги:

4 ответа

1

С jQuery вы можете поймать форму submit. submit событие посылается к элементу, когда пользователь пытается отправить форму.

HTML

<form id="myForm">...</form>

JQuery

$("#myForm").submit(function(event){
  event.preventDefault();

  var this = something;

  myFunctionA(this);
  myFunctionB(this);
});

var myFunctionA = function(this){
  // Function operation
}

var myFunctionB = function(this){
  // Function operation
}
1

Там несколько ответов в зависимости от того, что вы пытаетесь сделать.

Если вы хотите просто запустить обе функции и ничего не вернуть, вы можете просто сделать:

onsubmit="form_check(this); another_script(this);"

Если вы хотите всегда запускать another_script но возвращаете значение form_check, вы можете сделать:

onsubmit="another_script(this); return form_check(this);"

Если вы хотите только запустить another_script если form_check возвращает true (и возвращает true, если оба form_check и another_script возвращают true), вы можете сделать:

onsubmit="return form_check(this) && another_script(this);"

Тем не менее, слишком много кода в обработчике onsubmit обычно обескураживается. Вы должны привязать обработчики событий после использования DOM или jQuery.

  • 0
    Ваш последний пример эквивалентен return (form_check(this) && another_script(this)) так как && является оператором короткого замыкания, он не будет выполнять another_script(this) если from_check(this) вернет true
  • 0
    @Austin - Это предполагает, что another_script всегда возвращает true. Он может вернуть undefined что приведет к другому поведению. Я запомню это.
Показать ещё 1 комментарий
0

Это работает?

onsubmit="another_script(this); return form_check(this);"

конечно, всегда лучше использовать ненавязчивые обработчики событий.

0
onsubmit="return ((form_check(this) + another_script(this))===2);"

Демо-скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню